2012-10-28 124 views
-2

可能重複:
What is the colon operator in Ruby?「:」 符號在Ruby on Rails的

我開始學習Ruby和回報率,但有一點我不明白。爲什麼冒號(:)符號有時出現在實例變量/屬性等前面不清楚,並且困惑。例如下面的代碼:

def create 
    @post = Post.new(params[:post]) 

    respond_to do |format| 
    if @post.save 
     format.html { redirect_to(@post, 
        :notice => 'Post was successfully created.') } 
     format.json { render :json => @post, 
        :status => :created, :location => @post } 
    else 
     format.html { render :action => "new" } 
     format.json { render :json => @post.errors, 
        :status => :unprocessable_entity } 
    end 
    end 
end 

不太清楚,我應該使用:象徵?爲什麼?任何人都可以給我建議嗎?

回答

3

你所看到的不是冒號出現在變量前面。你會看到Ruby中被稱爲的符號

符號是該語言的基本特徵,您可以在很多地方閱讀符號,包括Ruby語言的任何基本介紹。

與其重申所有重要的解釋,我可以指出你做this good introductionformerly located here)。它向你展示了爲什麼Ruby首先有符號,以及爲什麼它們經常被用作你的例子中顯示的哈希鍵。

+0

+1不錯鏈接expalining – AnandVeeramani

+0

不錯的鏈接開始和理解。謝謝你.. –

3

我希望這能讓你瞭解遠比話

1.9.3p194 :001 > a = "str" 
=> "str" 
1.9.3p194 :002 > b = "str" 
=> "str" 
1.9.3p194 :003 > a 
=> "str" 
1.9.3p194 :004 > a.object_id 
=> 79925050 
1.9.3p194 :005 > b.object_id 
=> 80357610 
1.9.3p194 :006 > c = :str 
=> :str 
1.9.3p194 :007 > d = :str 
=> :str 
1.9.3p194 :008 > c.object_id 
=> 179768 
1.9.3p194 :009 > d.object_id 
=> 179768 

解釋更好的:一個變量稱爲前符號,你可以假設像恆定的內部對象,它會從你在哪裏都接入同它

檢查雷特里的回答,鏈接解釋的很清楚

+0

謝謝你的快速例子。 –