Ruby on rails 什么';s之间的差异=>;以及:

Ruby on rails 什么';s之间的差异=>;以及:,ruby-on-rails,ruby,Ruby On Rails,Ruby,Ruby中哈希键的=>和:之间有什么区别 delegate :sum, to: :CONSTANT_ARRAY delegate :sum, :to => :CONSTANT_ARRAY 为什么一个比另一个好?没有区别 这取决于你的喜好 delegate:sum,to::CONSTANT_ARRAY是Ruby 1.9及之后的语法 delegate:sum,:to=>:CONSTANT_ARRAY是Ruby 1.8语法。没有区别 这取决于你的喜好 delegate:sum,to

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

  delegate :sum, to: :CONSTANT_ARRAY


  delegate :sum, :to => :CONSTANT_ARRAY
为什么一个比另一个好?

没有区别

这取决于你的喜好

delegate:sum,to::CONSTANT_ARRAY
是Ruby 1.9及之后的语法

delegate:sum,:to=>:CONSTANT_ARRAY
是Ruby 1.8语法。

没有区别

这取决于你的喜好

delegate:sum,to::CONSTANT_ARRAY
是Ruby 1.9及之后的语法


delegate:sum,:to=>:CONSTANT_ARRAY
是Ruby 1.8语法。

基本上,在这种情况下,没有区别

Hash Rocket
=>
是旧样式,可能是从perl借用的,而冒号语法是更新的ruby 1.9格式的编写哈希


后者更倾向于json符号,因此,如果您更熟悉它,可能更容易阅读。

基本上,在本例中,没有区别

Hash Rocket
=>
是旧样式,可能是从perl借用的,而冒号语法是更新的ruby 1.9格式的编写哈希


后者更倾向于json符号,因此,如果您更熟悉它,可能更容易阅读。

=>
更通用。使用
=>
键可以是任何数据类型,而使用
则强制键为符号

例如:

{ a: 1 }
# => {:a=>1} # The key is the symbol :a

{ 'a' => 1 }
# => {"a"=>1} # The key is the string "a"

{ "a": 1 }
# => SyntaxError
为什么一个比另一个好


如果您的键是符号,那么您可能会发现
语法更清晰、更不混乱。熟悉JSON数据格式的人也可以立即识别它(尽管根据有效的JSON语法,从技术上讲,键必须是一个由双引号(“)包围的字符串,但非引号的键在许多语言中都可以识别,包括JavaScript)
=>
更通用。使用
=>
键可以是任何数据类型,而使用
强制键成为符号

例如:

{ a: 1 }
# => {:a=>1} # The key is the symbol :a

{ 'a' => 1 }
# => {"a"=>1} # The key is the string "a"

{ "a": 1 }
# => SyntaxError
为什么一个比另一个好


如果您的键是符号,那么您可能会发现
语法更清晰,更不混乱。熟悉JSON数据格式的人也可以立即识别它(虽然从技术上讲,键必须是一个由双引号(“)包围的字符串)根据有效的JSON语法,但非引号的键在许多语言中都可以识别,包括JavaScript。)

错误
$set:{'a.b':'c'}
是一个语法错误,但是
:$set=>{:'a.b'=>'c'}
是可以的(如果您使用MongoDB,这是很常见的)。如果您查看原始帖子中的给定示例,没有区别。但是说“没有区别”仍然是不正确的,该语句至少应该是限定的。将它们称为新样式和旧样式也是不正确的。即使说
a:'b'
是json符号也是不正确的,因为json要求引用键,将其称为JavaScript符号会更准确。好吧,让我换一种说法,并相应地编辑我的帖子。错误
$set:{'a.b':'c'}
是一个语法错误,但是
:$set=>{:'a.b'=>'c'}
是可以的(如果您使用MongoDB,这是很常见的)。如果您查看原始帖子中的给定示例,没有区别。但是说“没有区别”仍然是不正确的,该语句至少应该是限定的。将它们称为新样式和旧样式也是不正确的。即使说
a:'b'
是json符号也是不正确的,因为json要求引用键,将其称为JavaScript符号会更准确。好吧,让我换一种说法,并相应地编辑我的帖子。