Menu
CoddyTech

数组快捷操作

本课属于 Coddy Ruby 学习旅程的“基础知识”单元。第 64 课,共 88 课。

Ruby 提供了创建数组的便捷快捷方式,尤其适用于处理字符串或连续数字。这些快捷方式可以节省时间,让你的代码更简洁。

%w 语法可以创建字符串数组,无需使用引号或逗号:

fruits = %w[apple banana cherry]
puts fruits  # 输出:apple, banana, cherry

这相当于写成 ["apple", "banana", "cherry"],但简洁得多。每个用空格分隔的单词都会成为一个单独的元素。

对于符号数组,使用 %i:

statuses = %i[pending active completed]
puts statuses  # 输出:pending,active,completed

要创建由连续数字组成的数组,你可以使用 to_a 将范围转换为数组:

numbers = (1..5).to_a
puts numbers  # 输出:1, 2, 3, 4, 5

你也可以在数组括号内使用 splat 运算符 *:

countdown = [*5..10]
puts countdown  # 输出:5, 6, 7, 8, 9, 10

当你需要快速定义一组已知值,又不想被引号和逗号影响阅读时,这些简写方式特别有用。

challenge icon

挑战

简单

读取两项输入:

  1. 一行由空格分隔的单词(例如,red green blue yellow)
  2. 两个用逗号分隔、表示一个范围的整数(例如,3,7)

完成以下任务:

  1. 使用 %w 快捷语法,将第一项输入转换为字符串数组。由于输入本身是一个字符串,你需要先使用 split 将它转换为数组,然后通过创建一个包含单词 alpha、beta、gamma 的单独数组来演示 %w。
  2. 使用 %i 创建一个符号数组,包含值 start、middle、end。
  3. 在数组方括号内使用展开运算符 *,根据第二项输入提供的范围创建一个连续数字数组。

按以下顺序逐行打印:

  1. 输入单词数组中的每个元素
  2. 一个空行
  3. %w 数组中的每个元素(alpha、beta、gamma)
  4. 一个空行
  5. %i 符号数组中的每个元素
  6. 一个空行
  7. 数字范围数组中的每个元素

例如,如果输入是 red green blue 和 1,5,输出应为:

red
green
blue

alpha
beta
gamma

start
middle
end

1
2
3
4
5

如果输入是 sun moon star 和 10,13,输出应为:

sun
moon
star

alpha
beta
gamma

start
middle
end

10
11
12
13

亲手试试

# 读取以空格分隔的单词
words_input = gets.chomp

# 读取范围(两个以逗号分隔的整数)
range_input = gets.chomp

# TODO: 在下方编写代码
# 1. 使用 split 将 words_input 转换为数组
# 2. 创建包含 alpha、beta、gamma 的 %w 数组
# 3. 创建包含 start、middle、end 的 %i 数组
# 4. 解析范围,并使用展开运算符(*)创建数组

# 将每个数组的元素分别输出在不同的行,数组之间留一个空行
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Ruby 在线编译器