38

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

:foo => true
foo: true
4

2 回答 2

34

语法用于定义 Hash 键/值对,区别取决于 Ruby 版本。

Ruby 1.8 和 Ruby 1.9 都支持

:foo => true

仅在 Ruby 1.9 中受支持

foo: true

如果您使用 Ruby 1.9 进行开发,您可能应该使用以下语法:

foo: true

因为这似乎是社区前进的方向。

于 2011-11-20T01:49:13.220 回答
8

后者是 1.9 中引入的新的 Hash 语法。参见,例如:

http://breakthebit.org/post/8453341914/ruby-1-9-and-the-new-hash-syntax

这两行生成的哈希是相同的。

于 2011-11-20T01:44:44.933 回答