【问题标题】:There is a convention for the use of the sentence ":foo => 'bar'" or "foo: 'bar' " in Ruby 1.9? [closed]在 Ruby 1.9 中使用句子 ":foo => 'bar'" 或 "foo: 'bar'" 有约定吗? [关闭]
【发布时间】:2013-01-16 23:11:32
【问题描述】:

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

:param => "foo"

param: "foo"

编辑:感谢您的反馈,我编辑了问题以使其更清楚。

【问题讨论】:

  • 仅供参考:这与 Rails 无关。这是 Ruby 1.9 的变化。

标签: ruby coding-style


【解决方案1】:

有区别;较新的“JSON”哈希创建样式只能与符号键一起使用。如下所示。

{ param: "foo" }

等价于

{ :param => "foo" }

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

{ "foo" => "bar" }

或者这个:

{ 0 => "One" }

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

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

所以

param = :foo
{ param => "bar" }

等价于

{ :foo => "bar" }

【讨论】:

  • 可能还会注意到{param: "foo"}{param => "foo"} 不同。前者使用符号:param键,后者使用变量的值作为键。
  • 一些符号键,考虑:$set => { ... }$set: { ... },这是使用MongoDB时相当常见的事情。
  • 是的。以及您必须在常规符号中引用的任何内容,以及:@var 等。
【解决方案2】:

我在 codeschool.com 的教程中听说它完全一样。 params:params => 一样直观,但您可以节省三个字符...(=> 和一个字符之间的两个空格)

【讨论】:

  • 除了{'params'=>'foo'} # => { "params" => "foo" }{params:'foo'} # => { :params => "foo" } 之外完全一样。一个是键的字符串,另一个是符号。由于内存使用效率和查找速度的提高,与这一点的差异进一步扩大。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-04
  • 1970-01-01
  • 2017-06-23
  • 2014-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多