在我学习的过程中,我看到一些库方法中使用了散列参数.
例如.,
list.search(:titles, genre: 'jazz', duration_less_than: 270)
有人能解释一下一个方法是如何使用这样的参数的,以及你如何创建一个使用散列参数的方法吗?
在我学习的过程中,我看到一些库方法中使用了散列参数.
例如.,
list.search(:titles, genre: 'jazz', duration_less_than: 270)
有人能解释一下一个方法是如何使用这样的参数的,以及你如何创建一个使用散列参数的方法吗?
例子:
def foo(regular, hash={})
puts "regular: #{regular}"
puts "hash: #{hash}"
puts "a: #{hash[:a]}"
puts "b: #{hash[:b]}"
end
foo("regular argument", a: 12, :b => 13)
我使用hash={}
指定最后一个参数是散列,默认值为空散列.现在,当我写:
foo("regular argument", a: 12, :b => 13)
它实际上是一种语法糖:
foo("regular argument", {a: 12, :b => 13})
此外,{a: 12}
是{:a => 12}
的语法糖.
当所有这些结合在一起时,您会得到一个语法,它看起来类似于其他语言中的命名参数.