ruby - 方法如何在 Ruby 中使用散列参数?

标签 ruby methods hash arguments

我在学习过程中看到了一些库方法中使用的散列参数。

例如,

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} 的语法糖。

当所有这些组合在一起时,您会得到一种类似于其他语言中的命名参数的语法。

关于ruby - 方法如何在 Ruby 中使用散列参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16576477/

相关文章:

Ruby:如何从嵌套哈希中删除 nil/empty 值,为什么我没有尝试这样做?

java - 将数组中的元素向右移动,返回第二大元素,删除元素(java 开头)

java - 扫描 double 时出现InputMismatchException

ruby-on-rails - 按独特的子协会分组

ruby-on-rails - 在 Windows 上安装 bundle 时出错

hash - Paypal IPN 订阅密码散列

c++ - 如何在不发生冲突的情况下快速散列非常大的子串?

delphi - Delphi 2009 中的 MD5 哈希

ruby - 使用 LZMA 即时压缩到文件?

swift - 从另一个 View Controller 调用代码