Ruby中變量引用時的一些注意點
在表達式中,當Ruby看到像a這樣的名字時,它需要判斷a是一個局部變量引用還是對沒有參數的方法a的調用。Ruby使用一種啟發(fā)式的方法來判斷這種情況。當Ruby解析源代碼文件時,它會記錄所有已經被賦值的符號。它認為這些符號是變量。以后當遇到一個既可以是變量又可以是方法調用的符號時,Ruby會檢查是否已經對該符號進行了賦值。如果是,那么把該符號當作變量,否則當作方法調用。下面是描述這種情況的一個人為設計的例子。
def a print "Funciton 'a' called\n" 99 end for i in 1..2 if i ==2 print "a=",a,"\n" else a=1 print "a=",a,"\n" end end
輸出結果:
a=1 Function 'a' called a=99
當解析的時候,Ruby看到第一個print語句使用了a,并且由于還沒有遇到對a的任意賦值語句,所以把它當作方法調用。但是當解析到第二個print語句時,由于Ruby遇到了對a的一個賦值語句,所以把它當作變量
注意賦值語句不一定被執(zhí)行--只要Ruby看到它了就可以。下面的程序不會導致錯誤
a=1 if false;a
相關文章
學習Ruby你需要了解的相關知識(rvm, gem, bundle, rake, rails等)
這篇文章主要介紹了學習Ruby你需要了解的相關知識(rvm, gem, bundle, rake, rails等),需要的朋友可以參考下2014-06-06
使用Ruby on Rails快速開發(fā)web應用的教程實例
這篇文章主要介紹了使用Ruby on Rails快速開發(fā)web應用的教程實例,本文來自于IBM官方技術文檔,需要的朋友可以參考下2015-04-04
淺談Rails 4 中Strong Parameters機制
本文主要是通過Rails3中的Parameters與Rails4中新引入的Strong Parameters機制進行對比,從而得出他們直接的異同2014-06-06

