在Ruby 1.9中有一个使用句子":foo =>'bar'"或"foo:'bar'"的约定?

rfe*_*and 0 ruby coding-style

是否有使用Ruby 1.9+ =>:在Ruby 1.9+中使用的约定?喜欢:

:param => "foo"
Run Code Online (Sandbox Code Playgroud)

要么

param: "foo"
Run Code Online (Sandbox Code Playgroud)

编辑:感谢您的反馈,我编辑了这个问题,使其更加清晰.

Dan*_*ans 8

它们是有区别的; 较新的"JSON"样式的哈希创建只能与符号键一起使用.演示如下.

{ param: "foo" }
Run Code Online (Sandbox Code Playgroud)

相当于

{ :param => "foo" }
Run Code Online (Sandbox Code Playgroud)

所以你不能用它来创建这个哈希:

{ "foo" => "bar" }
Run Code Online (Sandbox Code Playgroud)

或者这一个:

{ 0 => "One" }
Run Code Online (Sandbox Code Playgroud)

这很有意义,因为最好的做法是尽可能使用符号键.

编辑:同样在您的示例中,{ param => "foo" }变量参数的值将用作键.

所以

param = :foo
{ param => "bar" }
Run Code Online (Sandbox Code Playgroud)

相当于

{ :foo => "bar" }
Run Code Online (Sandbox Code Playgroud)

  • 可能还会注意到`{param:"foo"}`与`{param =>"foo"}`不同.前者使用符号`:param`键,后者使用变量值作为键. (2认同)