首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby/Rails哈希火箭语法

Ruby/Rails哈希火箭语法
EN

Stack Overflow用户
提问于 2013-09-16 18:52:39
回答 1查看 4.1K关注 0票数 1

有人能给我介绍一个很好的入门,解释Ruby/Rails中不同的语法特性吗?例如,我看到的一些例子是如何实现myMethod(x: "z")的,而另一些例子是如何实现myMethod(:x => "x")

这个语法在我看来似乎很奇怪,只是想找一个快速的一目了然的引用来作为一个备忘单。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-16 18:57:10

他们是相同的,这只是一个偏好的问题。

我还问自己,如果我们已经有了这个语法,为什么还要添加这个新语法呢?嗯,使用Ruby编程意味着我们很懒,并且希望键入不太可能出现的字符。因此,这个新的语法允许我们--懒惰的程序员--写同样的东西,减去1 caracter!

但是要记住一些东西,比如键的类型(Ruby 1.9.3):

代码语言:javascript
复制
> {a: 12}.class
 => Hash 
> {:a => 12}.class
 => Hash 
> {'a' => 12}.keys.first.class
 => String 
> {a: 12}.keys.first.class
 => Symbol

此外,一些声明在新语法中是非法的:

代码语言:javascript
复制
> { '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?

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18835189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档