在Ruby中是什么结肠的哈希标识符之后是什么意思?(In Ruby what is the mean

2019-07-29 10:39发布

我了解工厂女孩,我看到这样的代码:

factory :post do
  association :author, factory: :user, last_name: "Writely"
end

为什么factorylast_name都在其末尾有一个冒号?

Answer 1:

在此上下文中结肠表示文字哈希。

factoryHash:user就是价值。

另一种选择的语法是:factory => :user 。 它们的意思是一样的。



Answer 2:

Ruby的语法1.8:

:factory => :user

Ruby 1.9的语法:

factory: :user

需要注意的是Ruby的语法1.8 1.9中也适用。



Answer 3:

其他的答案是正确的。 有关于这背后新语法的基本原理一些猜测。 这种变化可能有一些做的JavaScript,也许还有其他语言如何处理对象的文字符号。 ,需要有人认为,或许,把红宝石更加符合这些语言如何处理对象的创建。

例如,在JavaScript中,我们可以这样做:

var person = {
    name: "John",
    age: 42,
    married: false
}

因此,其实,当我们路过factory: :user ,我们真正做的是通过{factory: :user} ,也可以写成{:factory => :user} 。 1.9语法的目的是使其更容易做类似{factory: "user"}



文章来源: In Ruby what is the meaning of colon after identifier in a Hash?
标签: ruby syntax hash