我定义了一些像这样的函数:
def func1(hash)
hash.each do |key, value|
puts "#{key}, #{value}"
end
end
我可以像这样调用函数:
func1({somekey: "somevalue"})
func1(somekey: "somevalue")
func1 somekey: "somevalue"
但这种格式不起作用:
func1 {somekey: "somevalue"}
请解释一下。
使用由空格分隔的花括号qazxsw poi是如何在ruby中声明块的,因此在解析步骤中存在冲突。 Ruby认为你将方法传递给了一个块。
例如,这是一个传递给{}
方法的块:
select
您可以将其称为“内联”块,它可以替代使用[1, 2, 3].select { |x| x >= 2 } # => [2, 3]
(略有不同)。在我看来,最好坚持在这里使用括号do..end
()