块参数
本课属于 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块参数的数量和顺序取决于该方法生成的内容。如果不确定,可以查阅文档,或者先试着使用一个参数,看看会得到什么。
挑战
简单给定哈希 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 开始。
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Ruby 在线编译器