Dus*_*tin 41 ruby symbols ruby-on-rails operators hashrocket
在学习Ruby时我偶尔会遇到"=>"运算符.通常我会以它的形式看到它
:symbol => value
Run Code Online (Sandbox Code Playgroud)
并且在将值传递给函数时似乎经常使用它.该运营商究竟叫什么?它是什么意思/是什么意思?它是内置到Ruby中还是像Rails和DataMapper这样的不同框架添加到符号类中的东西?它只与符号类一起使用吗?谢谢.
sep*_*p2k 49
=>将键与hashmap文字中的值分开.它不是可过载的,也没有专门连接到符号.
hashmap文字具有表单{key1 => value1, key2 => value2, ...},但是当用作函数的最后一个参数时,可以省略大括号.所以,当你看到一个函数调用一样f(:a => 1, :b => 2),f被称为一个参数,它是具有密钥的HashMap中:a和:b和值1和2.
jmc*_*vin 12
您可能会听到此运算符被称为"哈希火箭",这意味着您在定义ruby哈希时会使用它.
如果您不熟悉,这是Ruby Hash文档:http://www.ruby-doc.org/core/classes/Hash.html
请注意,在Ruby 1.9中,如果您正在定义使用符号作为键的哈希,那么现在可以使用另一种语法:http://blog.peepcode.com/tutorials/2011/rip-ruby-hash-rocket-句法
提示:如果你{:a => "A", :b => "B"}在Ruby 1.9中使用它,你可以像JSON哈希一样使用它:
{
a: "A",
b: "B"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26713 次 |
| 最近记录: |