亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解析 ruby 全局變量

 更新時間:2007年11月24日 14:18:34   作者:  
 全局變量由$開頭.它們可以在程序的任何位置訪問到.在初始化前,全局變量有一個特殊的值 nil.

ruby> $foo
   nil
ruby> $foo = 5
   5
ruby> $foo
   5  


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

全局變量的好處是其可以被跟蹤;你可以做一個當(dāng)變量值改變時被調(diào)用的過程.

ruby> trace_var :$x, proc{print "$x is now ", $x, "\n"}
   nil
ruby> $x = 5
$x is now 5
   5  


當(dāng)一個全局變量(改變時)作為一個過程的激發(fā)器,我們也管它叫活動變量(active variable).比如說,它可用于保持GUI顯示的更新.

這里列出了一些以$打頭并跟單個字符的特殊變量.比如,$$包含了Ruby解釋器的進程id,它是只讀的.這里是主要的系統(tǒng)變量以及它們的含義(細節(jié)可在Ruby的參考手冊中查到):

$!  最近一次的錯誤信息 
$@  錯誤產(chǎn)生的位置 
$_  gets最近讀的字符串  
$.  解釋器最近讀的行數(shù)(line number) 
$&  最近一次與正則表達式匹配的字符串 
$~  作為子表達式組的最近一次匹配  
$n  最近匹配的第n個子表達式(和$~[n]一樣)  
$=  是否區(qū)別大小寫的標(biāo)志  
$/  輸入記錄分隔符 
$\  輸出記錄分隔符 
$0  Ruby腳本的文件名 
$*  命令行參數(shù) 
$$  解釋器進程ID 
$?  最近一次執(zhí)行的子進程退出狀態(tài) 

上面的 $_ 和 $~ 都有作用范圍.它們的名字暗示其為全局的,但它們一般都是這樣用的,關(guān)于它們的命名有歷史上的原因.  
 

相關(guān)文章

  • Ruby中的迭代器詳解

    Ruby中的迭代器詳解

    這篇文章主要介紹了Ruby中的迭代器詳解,本文講解了字符串、數(shù)字、數(shù)組、Map、文件、目錄等情況下使用迭代器的例子,需要的朋友可以參考下
    2014-09-09
  • 簡單談?wù)凴uby的private和protected

    簡單談?wù)凴uby的private和protected

    Ruby類下對訪問控制的限制也是用public,protected和private來做的。雖然用的是和C++和Java相同的名字,但是Ruby下的protected和private定義還是有所不同的。
    2016-02-02
  • print不自動換行,puts會自動換行

    print不自動換行,puts會自動換行

    print不自動換行,puts會自動換行...
    2007-10-10
  • Ruby簡明教程之方法(Method)介紹

    Ruby簡明教程之方法(Method)介紹

    這篇文章主要介紹了Ruby簡明教程之方法(Method)介紹,ruby的方法分為實例方法、類方法、函數(shù)方法等,本文分別做了講解,需要的朋友可以參考下
    2014-06-06
  • Ruby中相等性判斷的4種方法

    Ruby中相等性判斷的4種方法

    這篇文章主要介紹了Ruby中相等性判斷的4種方法,本文講解了“==” 最常見的相等性判斷、“===” 用于 case 語句的相容判斷、“equal?” 相同對象判斷、“eql?” 對象 hash 值判斷等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • 詳細解讀Ruby當(dāng)中的條件判斷語句

    詳細解讀Ruby當(dāng)中的條件判斷語句

    這篇文章主要介紹了詳細解讀Ruby當(dāng)中的條件判斷語句,if、else等邏輯判斷語句是各門編程語言的基礎(chǔ),需要的朋友可以參考下
    2015-05-05
  • 最新評論