解析 ruby 全域性變數

2022-09-26 06:12:08 字數 1109 閱讀 7568

全域性變數由$開頭.它們可以在程式的任何位置訪問到.在初始化前,全域性變cstdapog量有乙個特殊的值 nil.

ruby> $foo

nil

ruby> $foo = 5

5 ruby> $foo

5  

應謹慎使用全域性變數.由於在任何地方都可以被寫因此他們相當危險.濫用全域性變數會導致很難隔離臭蟲;同時也視為程式的設計未經嚴格考慮.當你發現必須要使用全域性變數時,記得給它乙個不會在其它地方一不小心就用到的描述性名字(像上面那樣叫$foo可能不是乙個好想法).

全域性變數的好處是其可以被跟蹤;你可以做乙個當變數值改變時被呼叫的過程.

ruby> trace_var :$x, proc

nil

ruby> $x = 5

$x is now 5

5  

當乙個全域性變數(改變時)作為乙個過程的激發器,我們也管它叫活動變數(active variable).比如說,它可用於保持gui顯示的更新.

這裡列出了一些以$打頭並cstdapog跟單個字元的特殊變數.比如,$$包含了ruby直譯器的程序id,它是唯讀的.這裡是主要的系統變數以及它們的含義(細節可在ruby的參考手冊中查到):

$!  最近一次的錯誤資訊 

$@  錯誤產生的位置 

$_  gets最近讀的字串  

$.  直譯器最近讀的行數(line number) 

$&  最近一次與正規表示式匹配的字串 

$~  作為子表示式組的最近一次匹配  

$n  最近匹配的第n個子表示式(和$~[n]一樣)  

$=  是否區別大小寫的標誌  

$/  輸入記錄分隔www.cppcns.com符 程式設計客棧;

$\ &程式設計客棧nbsp;輸出記錄分隔符 

$0  ruby指令碼的檔名 

$*  命令列引數 

$$  直譯器程序id 

$?  最近一次執行的子程序退出狀態 

上面的 $_ 和 $~ 都有作用範圍.它們的名字暗示其為全域性的,但它們一般都是這樣用的,關於它們的命名有歷史上的原因.  

本文標題: 解析 ruby 全域性變數

本文位址:

Ruby全域性變數

全域性變數由 開頭.它們可以在程式的任何位置訪問到.在初始化前,全域性變數有乙個特殊的值 nil.這裡列出了一些以 打頭並跟單個字元的特殊變數.比如,包含了ruby 解釋 器的程序id,它是唯讀的.這裡是主要的系統變數以及它們的含義 細節可在ruby 的參考手 冊中查到 最近一次的錯誤資訊 錯誤產生...

static全域性變數 全域性變數

1 全域性變數 外部變數 的說明之前再冠以static 就構成了靜態的全域性變數。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同。這兩者的區別在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,非靜態的全域性變數在各個原始檔中都是...

php全域性變數 SERVER解析

1 server php self 獲取當前正在執行指令碼的檔名 2 server server protocol 請求頁面時通訊協議的名稱和版本。例如,http 1.0 3 server request time 請求開始時的時間戳。從 php 5.1.0 起有效。和time函式效果一樣。4 se...