2012-06-22 23 views
0

可能重複:
Understanding Symbols In Ruby
What is the colon operator in Ruby?在Ruby中用冒號作前綴的詞是什麼?

這是一些代碼Rails的教程中,我讀給我。

class Post < ActiveRecord::Base 
    attr_accessible :content, :name, :title 

    validates :name, :presence => true 
    validates :title, :presence => true, 
        :length => { :minimum => 5 } 
end 

what:content,:name,and:title是什麼意思?我依稀記得這些來自我正在閱讀的紅寶石教程(hlrb),但是當我瀏覽它時我找不到它們。這些詞以冒號爲前綴是什麼意思?

+3

這些被稱爲[symbols](http://ruby-doc.org/core-1.9.3/Symbol.html),是一種不可變的字符串。 –

回答

8

你所指的詞被稱爲符號。

什麼是你問的符號?它們或多或少像字符串,除了它們是不可改變的(不能被改變)並且是單身(在存儲器中只創建一次,不管你使用了多少次)。

這意味着它們在任何地方都可以用作密鑰,因爲它們具有更高的內存效率。

所以,如果你有兩個哈希值,例如,和有一個名爲鍵鍵,使用字符串的哈希鍵:

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' 
相關問題