Ruby / Rails哈希火箭语法

有人能指出我刚才解释Ruby / Rails中不同语法特征的好基础吗? 例如,我看到的一些例子是怎么做的myMethod(x: "z")和其他的myMethod(:x => "x")

一般来说,语法对我来说似乎很奇怪,只是想快速一目了然地将其用作备忘单。

它们是相同的 ,只是偏好的问题。

我也问过自己为什么我们会添加这种新语法? 好吧,用Ruby编程意味着我们很懒,想要输入较少的caracters。 因此,这种新语法允许我们 – 懒惰的程序员 – 编写相同的东西,减去1个字符!


但请记住一些东西,例如键的类型(Ruby 1.9.3):

 > {a: 12}.class => Hash > {:a => 12}.class => Hash > {'a' => 12}.keys.first.class => String > {a: 12}.keys.first.class => Symbol 

此外,使用新语法时,某些声明是非法的:

 > { '1-2' => "something" } => {"1-2"=>"something"} > { 1-2: "something" } SyntaxError: (irb):38: syntax error, unexpected ':', expecting tASSOC { 1-2: "something" } ^ (irb):38: syntax error, unexpected '}', expecting $end 

有关更多信息: `:key =>“value”`和`key:“value”`哈希表示符之间是否有任何区别?

Interesting Posts