Ruby中的"equals greater than"运算符"=>"是什么?

21

在一本Ruby on Rails教程中,我被要求输入:

class Post < ActiveRecord::Base
    validates :name,  :presence => true  
    validates :title, :presence => true, :length => { :minimum => 5 }
end

我明白这个代码的作用,但我想知道 "=>" 运算符是什么。在 PHP 中,它将关联数组中的键和值链接起来。这里是相同的吗?这是 Ruby 运算符还是 Rails 运算符?


1个回答

30

它主要是一个 Ruby 运算符,用于设置哈希表内键的值。因此:

{ :minimum => 5 }

这是一个Ruby哈希表,其中符号:minimum作为键映射到值5。在此示例中,这是一个只有一项的哈希表。

:presence => true

仍然是一个哈希表,但在 Ruby 中,当你有一个方法时,可以省略围绕哈希的 {}。这就是 validates 方法所发生的事情。它是一个方法,因此传递的哈希表不需要显式地使用 {}。


1
很好的解释!谢谢。所以看起来 {:presence => true} 也是有效的,但在 RoR 中传递哈希作为参数时不是惯例。 - MM.
2
是的,你也可以使用 {},尽管人们倾向于省略它 :) (我也省略它) - Spyros

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接