我从未见过构建哈希的这个构造.do_stuff(records: records)这仅适用于发送给方法的参数列表吗?是否记录在任何地方?我知道它是Ruby 1.9+.
records = {
'example.com' => '1.2.3.4',
'hello.com' => '44.33.22.22',
}
def do_stuff(data = {} )
puts data
end
do_stuff(records: records)
Run Code Online (Sandbox Code Playgroud)
这里有两件事.{ key: value }Ruby 1.9中的 语法是新的.它相当于{ :key => value }.
此外,Ruby方法有一些语法糖,允许您传入哈希文字作为方法的最后一个参数,而不包括花括号.这在Ruby 1.9中并不新鲜.所以
do_stuff(key: value)
Run Code Online (Sandbox Code Playgroud)
相当于
do_stuff({ key: value })
Run Code Online (Sandbox Code Playgroud)
只是提醒您,这只有在散列是方法的最后一个参数时才有效.