【发布时间】:2011-03-22 07:32:57
【问题描述】:
我最近开始编写 Ruby 代码,但我对块参数有误解。 以如下代码为例:
h = { # A hash that maps number names to digits
:one => 1, # The "arrows" show mappings: key=>value
:two => 2 # The colons indicate Symbol literals
}
h[:one] # => 1. Access a value by key
h[:three] = 3 # Add a new key/value pair to the hash
h.each do |key,value| # Iterate through the key/value pairs
print "#{value}:#{key}; " # Note variables substituted into string
end # Prints "1:one; 2:two; 3:three; "
我了解一般的哈希功能,但我不明白 value 和 key 是如何设置为任何内容的。它们被指定为块中的参数,但哈希值从未以任何方式与这些参数相关联。
【问题讨论】:
-
当它说
h.each do |key,value|时,整个do块的key,value到h的关联是在该行上定义的。key和value的名字可以是任何你喜欢的名字。 -
如果
h.each看起来太神奇了,那么您可以随时使用h.each_pair。 -
Ruby 带有 IRB,您可以使用
irb从命令行运行它。它使您可以轻松地开始使用变量和赋值。当你想学习这些东西时,它是一个很好的工具。 -
如果他们解决了您的问题,您可能希望接受答案。它们是每个问题旁边的勾号图标。