冒号“:”和胖箭“=>”之间有什么区别?

时间:2011-11-20 01:43:31

标签: ruby syntax hash hashrocket

Ruby中冒号:和胖箭=>之间有什么区别?或何时使用什么?

:foo => true
foo: true

2 个答案:

答案 0 :(得分:23)

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

Ruby 1.8和Ruby 1.9都支持

:foo => true

仅在Ruby 1.9中支持

foo: true

如果你在Ruby 1.9中开发,你应该使用语法:

foo: true

因为它似乎是社区的方向。

答案 1 :(得分:7)

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

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

两条线产生的哈希是相同的。