Menu
CoddyTech

块参数

本课属于 Coddy Ruby 学习旅程的“逻辑与流程”单元。第 18 课,共 56 课。

竖线之间的变量,|x|、|x, y|,就是块参数。它们为方法传入块的值命名。

有些方法会传入一个值,有些则会传入多个值。each 一次传入一个元素:

[10, 20, 30].each { |n| puts n }

each_with_index会传递两个值:元素及其索引。

["a", "b", "c"].each_with_index do |letter, i|
  puts "#{i}: #{letter}"
end
# 0: a
# 1: b
# 2: c

遍历哈希时,代码块参数是键和值:

{ a: 1, b: 2 }.each do |key, value|
  puts "#{key} = #{value}"
end

块参数的数量和顺序取决于该方法生成的内容。如果不确定,可以查阅文档,或者先试着使用一个参数,看看会得到什么。

challenge icon

挑战

简单

给定哈希 scores。将它转换为 to_a 形式后,使用 each_with_index 遍历,这样你就能同时获取(姓名,分数)这一对值及其位置。每个条目打印一行,格式如下:

<rank>. <name> - <points>

其中 rank 从 1 开始(不是 0)。

默认哈希的输出为:

1. Alice - 90
2. Bob - 85
3. Cara - 78

亲手试试

scores = { "Alice" => 90, "Bob" => 85, "Cara" => 78 }

# TODO:为每个条目输出 "<rank>. <name> - <points>",排名从 1 开始。
quiz icon自我测试

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

逻辑与流程中的所有课

自己练习: Ruby 在线编译器