Ruby全域性變數

2021-05-24 08:57:47 字數 569 閱讀 1006

全域性變數由$開頭.它們可以在程式的任何位置訪問到.在初始化前,全域性變數有乙個特殊的值 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 就構成了靜態的全域性變數。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同。這兩者的區別在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,非靜態的全域性變數在各個原始檔中都是...

全域性變數和靜態全域性變數

全域性變數和區域性變數是從變數的作用域的角度劃分。靜態變數和動態變數是從變數的記憶體分配的角度劃分。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同,區別在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,非靜態的全域性變數在各個原...