可能重复:
Understanding Symbols In Ruby
What is the colon operator in Ruby?
这是我正在阅读的Rails教程给我的一些代码。
class Post < ActiveRecord::Base
attr_accessible :content, :name, :title
validates :name, :presence => true
validates :title, :presence => true,
:length => { :minimum => 5 }
end
:content,:name和:title是什么意思?我依旧记得这些来自我正在阅读的红宝石教程(hlrb),但是当我浏览它时我找不到它们。这些单词以冒号为前缀是什么意思?
答案 0 :(得分:8)
您所指的词语称为符号。
你问的符号是什么?它们或多或少像字符串一样,除了它们是不可变的(不能改变)并且是单例(只在内存中创建一次,无论你使用它们多少次)。
这意味着它们在任何地方都被用作密钥,因为它们的内存效率更高。
因此,如果您有两个哈希值,并且有一个名为key的键,则使用字符串作为哈希键:
my_hash['key'] #in memory once
your_hash['key'] # in memory twice
如果您使用符号
my_hash[:key] # in memory once
your_hash[:key] # still in memory once!
您可能还会遇到以下形式的符号:
key: 'value'
这与
相同:key => 'value'