Ruby 入門指南 - 變數命名規則

Ruby 的變數有三種,金錢符號 $ 開始的為全域變數 (global variable) ,而 @ 開頭的為實體變數 (instance variable) ,其他小寫英文字母、數字與底線組合的是區域變數 (local variable) ,至於大寫英文字母開頭的則用為常數 (constant)




也就是說,有兩個特別的命名字元
$@


其他可用字元 (character) 如下表
_
abcdefghijklm
nopqrstuvwxyz
ABCDEFGHIJKLM
NOPQRSTUVWXYZ
0123456789


識別字 (identifier) 名稱包含變數、方法、類別,凡是識別字名稱都不可以用數字開頭,也不能使用關鍵字 (keyword) 當識別字名稱,另外自行定義的識別字名稱應盡量避免與程式庫 (library) 內建名稱衝突。


全域變數就是在任何地方都可使用,無論在方法 (method) 、類別 (class) 或區塊 (block) 裡,以下都是合法的全域變數
$variable_name
$_code
$CODE
$_1234
$a1234
$someThing
$SomeThing


實體變數定義在類別中,使用範圍限制在類別裡,以下都是合法的實體變數
@variable_name
@_code
@CODE
@_1234
@a1234
@someThing
@SomeThing


除了實體變數也有類別變數 (class variable) ,類別變數就是用類別名稱存取的變數,利用連續兩個 @@ 在類別中定義。


區域變數的使用範圍限制在區塊或方法內,以下都是合法的區域變數
variable_name
_code
_1234
a1234
someThing


常數的使用範圍跟區域變數相同,如果修改已經賦值的常數變數,直譯器會提供警告訊息。以下都是合法的常數名稱
Code
CODE
SomeThing


方法與類別名稱也都須自行命名,通常方法採小寫英文單字,或用底線連接或用小寫駝峰型 (lower camel case),例如
methodname
method_name
methodName


類別則是採大寫英文單字,或用底線連接或用大寫駝峰型 (upper camel case) ,例如
Classname
Class_Name
ClassName


其實除了全域變數與實體變數外,其他識別字名稱都沒有嚴格限制命名方式,不過我們還是照著習慣走好一點囉!接下來,我們繼續看到運算式與陳述


中英文術語對照
全域變數global variable
實體變數instance variable
區域變數local variable
常數constant
字元character
識別字identifier
關鍵字keyword
程式庫library
方法method
類別class
區塊block
類別變數class variable
小寫駝峰型lower camel case
大寫駝峰型upper camel case


您可以繼續參考
基礎篇


相關目錄
回 Ruby 入門指南
回 Ruby 教材
回首頁


參考資料
http://www.rubyist.net/~slagell/ruby/variables.html
http://www.rubyist.net/~slagell/ruby/globalvars.html
http://www.rubyist.net/~slagell/ruby/instancevars.html
http://www.rubyist.net/~slagell/ruby/localvars.html
http://www.rubyist.net/~slagell/ruby/constants.html
http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_classes.html
http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html

沒有留言: