Ruby中的冒号:和脂肪箭头=>有什么区别?或者什么时候用什么?

:foo => true
foo: true

推荐答案

语法用于定义散列键/值对,区别取决于Ruby版本.

Ruby 1.8和Ruby 1.9都支持

:foo => true

仅在Ruby 1.9中受支持

foo: true

如果您是在Ruby 1.9中开发的,您可能应该使用以下语法:

foo: true

这似乎是社区的发展方向.

Ruby相关问答推荐

运行跳过的RSpec测试,如果通过则失败

Ruby将字符串中的反斜杠替换为双反斜杠

这个#divmod 方法输出这个结果是做什么的?

这是一个很好的测试?规范

判断数组中的字符串是否包含另一个数组中的子字符串

类 SpecificationPolicy 的超类不匹配

Ruby ERB 类给出未定义的局部变量或方法,但 erb 解析良好

使用 Ruby,是否可以将 BigDecimal("1") / BigDecimal("3") 打印为 0.3333333333333... 到任意长度?

使用 Drive API 创建空文件

我应该签入.ruby-gemset和/或.ruby-version吗?

Ruby 中是否有像 C 中一样的主要方法?

Vagrant - 如何拥有特定于主机平台的配置步骤

我如何需要特定版本的 ruby​​ gem?

在Ruby中第一个=符号之后获取子字符串

to_proc 方法是什么意思?

了解 ruby​​-prof 输出

如何在 Ruby 的 IRB 中启用自动完成

向实例对象添加方法

为什么在安装 gem 时出现权限被拒绝错误?

如何使用 Ruby-Rails 删除文件夹的所有内容?