数组快捷操作
本课属于 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当你需要快速定义一组已知值,又不想被引号和逗号影响阅读时,这些简写方式特别有用。
挑战
简单读取两项输入:
- 一行由空格分隔的单词(例如,
red green blue yellow) - 两个用逗号分隔、表示一个范围的整数(例如,
3,7)
完成以下任务:
- 使用
%w快捷语法,将第一项输入转换为字符串数组。由于输入本身是一个字符串,你需要先使用split将它转换为数组,然后通过创建一个包含单词alpha、beta、gamma的单独数组来演示%w。 - 使用
%i创建一个符号数组,包含值start、middle、end。 - 在数组方括号内使用展开运算符
*,根据第二项输入提供的范围创建一个连续数字数组。
按以下顺序逐行打印:
- 输入单词数组中的每个元素
- 一个空行
%w数组中的每个元素(alpha、beta、gamma)- 一个空行
%i符号数组中的每个元素- 一个空行
- 数字范围数组中的每个元素
例如,如果输入是 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. 解析范围,并使用展开运算符(*)创建数组
# 将每个数组的元素分别输出在不同的行,数组之间留一个空行这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Ruby 在线编译器