:foo => :bar
和foo: :bar
之间有什么区别?
我是否应该使用其中一种?
有哪些优点/缺点?
由mods链接的问题/答案不是:
答案 0 :(得分:3)
如果您运行的是支持foo: :bar
表示法的Ruby版本(v.1.9 +),则大部分时间没有区别。
优点/缺点主要是程序员首选项,除了我们经常使用的复杂键:"foo bar"
,但新语法不支持:
ash = {:'foo foo' => 1} => {:"foo foo"=>1} irb(main):002:0> hash = {'foo foo': 1} SyntaxError: (irb):2: syntax error, unexpected ':', expecting =>
否则,您可以使用对您感觉更好的方式。我建议你不要混淆它们,因为这会变成可读性,然后是维护问题。
在工作中我更喜欢看=>
,因为它是键/值对的更明显的分隔符,这也允许我们在更多版本的Ruby上运行代码,如果有必要的话。