全域性變數由$開頭.它們可以在程式的任何位置訪問到.在初始化前,全域性變數有乙個特殊的值 nil.
這裡列出了一些以$打頭並跟單個字元的特殊變數.比如,$$包含了ruby 解釋 器的程序id,它是唯讀的.這裡是主要的系統變數以及它們的含義(細節可在ruby 的參考手 冊中查到):
$! 最近一次的錯誤資訊
$@ 錯誤產生的位置
$_ gets最近讀的字串
$. 直譯器最近讀的行數(line number)
$& 最近一次與正規表示式匹配的字串
$~ 作為子表示式組的最近一次匹配
$n 最近匹配的第n個子表示式(和$~[n]一樣)
$= 是否區別大小寫的標誌
$/ 輸入記錄分隔符
$/ 輸出記錄分隔符
$0 ruby 指令碼的檔名
$* 命令列引數
$$ 直譯器程序id
$? 最近一次執行的子程序退出狀態
上面的 $_ 和 $~ 都有作用範圍.它們的名字暗示其為全域性的,但它們一般都是這樣用的,關於它們的命名有歷史上的原因.
解析 ruby 全域性變數
全域性變數由 開頭.它們可以在程式的任何位置訪問到.在初始化前,全域性變cstdapog量有乙個特殊的值 nil.ruby foo nil ruby foo 5 5 ruby foo 5 應謹慎使用全域性變數.由於在任何地方都可以被寫因此他們相當危險.濫用全域性變數會導致很難隔離臭蟲 同時也視為程式...
static全域性變數 全域性變數
1 全域性變數 外部變數 的說明之前再冠以static 就構成了靜態的全域性變數。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同。這兩者的區別在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,非靜態的全域性變數在各個原始檔中都是...
全域性變數和靜態全域性變數
全域性變數和區域性變數是從變數的作用域的角度劃分。靜態變數和動態變數是從變數的記憶體分配的角度劃分。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同,區別在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,非靜態的全域性變數在各個原...