0

有人可以给我指出一个很好的入门书来解释 Ruby/Rails 中的不同语法特性吗?例如,为什么我看到的一些例子是做的myMethod(x: "z"),而另一些例子是做的myMethod(:x => "x")

一般的语法对我来说似乎很奇怪,只是寻找一个快速的一目了然的参考作为备忘单。

4

1 回答 1

7

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

我还问自己,如果我们已经有了一个新语法,为什么还要添加这个新语法?好吧,使用 Ruby 编程意味着我们很懒惰,想输入尽可能少的字符。所以这个新语法允许我们——懒惰的程序员——写同样的东西,减去 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"` 哈希表示法之间有什么区别吗?

于 2013-09-16T18:57:10.787 回答