有人能给我介绍一个很好的入门,解释Ruby/Rails中不同的语法特性吗?例如,我看到的一些例子是如何实现myMethod(x: "z")的,而另一些例子是如何实现myMethod(:x => "x")的
这个语法在我看来似乎很奇怪,只是想找一个快速的一目了然的引用来作为一个备忘单。
发布于 2013-09-16 18:57:10
他们是相同的,这只是一个偏好的问题。
我还问自己,如果我们已经有了这个语法,为什么还要添加这个新语法呢?嗯,使用Ruby编程意味着我们很懒,并且希望键入不太可能出现的字符。因此,这个新的语法允许我们--懒惰的程序员--写同样的东西,减去1 caracter!
但是要记住一些东西,比如键的类型(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欲了解更多信息: hash notations?
https://stackoverflow.com/questions/18835189
复制相似问题