=>之间有什么区别?并且:

时间:2014-03-04 18:26:36

标签: ruby-on-rails ruby

=>之间有什么区别?和:对于Ruby中的哈希键?

  delegate :sum, to: :CONSTANT_ARRAY


  delegate :sum, :to => :CONSTANT_ARRAY

为什么一个人比另一个好?

3 个答案:

答案 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,因此如果对它更熟悉,可能更容易阅读。