=>之间有什么区别?和:对于Ruby中的哈希键?
delegate :sum, to: :CONSTANT_ARRAY
delegate :sum, :to => :CONSTANT_ARRAY
为什么一个人比另一个好?
答案 0 :(得分:4)
=>
比:
更通用。使用=>
时,密钥可以是任何数据类型,而使用:
强制密钥成为符号。
例如:
{ a: 1 }
# => {:a=>1} # The key is the symbol :a
{ 'a' => 1 }
# => {"a"=>1} # The key is the string "a"
{ "a": 1 }
# => SyntaxError
为什么一个人比另一个好?
如果您的密钥是符号,那么您可能会发现:
语法更清晰,更简洁。对于那些熟悉JSON数据格式的人来说,它也是立即可识别的(虽然从技术上讲,键必须是由双引号(“)根据the standard包围的字符串才能成为有效的JSON语法,但未引用密钥以多种语言识别,包括JavaScript。)
答案 1 :(得分:0)
没有区别。
这取决于您的偏好。
delegate :sum, to: :CONSTANT_ARRAY
是Ruby 1.9及其后的语法。
delegate :sum, :to => :CONSTANT_ARRAY
是Ruby 1.8语法。
答案 2 :(得分:0)
基本上,在这种情况下,没有区别。
Hash-Rocket =>
是旧样式,可能是从perl借来的,而冒号语法是更新的,ruby 1.9样式的写法哈希。
后者更倾向于json-notation,因此如果对它更熟悉,可能更容易阅读。