解析 ruby 全局變數
来源:互联网 发布:手机陀螺仪水平仪软件 编辑:程序博客网 时间:2024/05/29 13:59
全局變數由$開頭.它們可以在程序的任何位置訪問到.在初始化前,全局變數有一個特殊的值 nil.
ruby> $foo
nil
ruby> $foo = 5
5
ruby> $foo
5
應謹慎使用全局變數.由於在任何地方都可以被寫因此他們相當危險.濫用全局變數會導致很難隔離臭蟲;同時也視為程序的設計未經嚴格考慮.當你發現必須要使用全局變數時,記得給它一個不會在其它地方一不小心就用到的描述性名字(像上面那樣叫$foo可能不是一個好想法).
全局變數的好處是其可以被跟蹤;你可以做一個當變數值改變時被調用的過程.
ruby> trace_var :$x, proc{print "$x is now ", $x, "\n"}
nil
ruby> $x = 5
$x is now 5
5
當一個全局變數(改變時)作為一個過程的激發器,我們也管它叫活動變數(active variable).比如說,它可用於保持GUI顯示的更新.
這裡列出了一些以$打頭並跟單個字元的特殊變數.比如,$$包含了Ruby解釋器的進程id,它是只讀的.這裡是主要的系統變數以及它們的含義(細節可在Ruby的參考手冊中查到):
$! 最近一次的錯誤信息
$@ 錯誤產生的位置
$_ gets最近讀的字元串
$. 解釋器最近讀的行數(line number)
$& 最近一次與正則表達式匹配的字元串
$~ 作為子表達式組的最近一次匹配
$n 最近匹配的第n個子表達式(和$~[n]一樣)
$= 是否區別大小寫的標誌
$/ 輸入記錄分隔符
$\ 輸出記錄分隔符
$0 Ruby腳本的文件名
$* 命令行參數
$$ 解釋器進程ID
$? 最近一次執行的子進程退出狀態
上面的 $_ 和 $~ 都有作用範圍.它們的名字暗示其為全局的,但它們一般都是這樣用的,關於它們的命名有歷史上的原因.
ruby> $foo
nil
ruby> $foo = 5
5
ruby> $foo
5
應謹慎使用全局變數.由於在任何地方都可以被寫因此他們相當危險.濫用全局變數會導致很難隔離臭蟲;同時也視為程序的設計未經嚴格考慮.當你發現必須要使用全局變數時,記得給它一個不會在其它地方一不小心就用到的描述性名字(像上面那樣叫$foo可能不是一個好想法).
全局變數的好處是其可以被跟蹤;你可以做一個當變數值改變時被調用的過程.
ruby> trace_var :$x, proc{print "$x is now ", $x, "\n"}
nil
ruby> $x = 5
$x is now 5
5
當一個全局變數(改變時)作為一個過程的激發器,我們也管它叫活動變數(active variable).比如說,它可用於保持GUI顯示的更新.
這裡列出了一些以$打頭並跟單個字元的特殊變數.比如,$$包含了Ruby解釋器的進程id,它是只讀的.這裡是主要的系統變數以及它們的含義(細節可在Ruby的參考手冊中查到):
$! 最近一次的錯誤信息
$@ 錯誤產生的位置
$_ gets最近讀的字元串
$. 解釋器最近讀的行數(line number)
$& 最近一次與正則表達式匹配的字元串
$~ 作為子表達式組的最近一次匹配
$n 最近匹配的第n個子表達式(和$~[n]一樣)
$= 是否區別大小寫的標誌
$/ 輸入記錄分隔符
$\ 輸出記錄分隔符
$0 Ruby腳本的文件名
$* 命令行參數
$$ 解釋器進程ID
$? 最近一次執行的子進程退出狀態
上面的 $_ 和 $~ 都有作用範圍.它們的名字暗示其為全局的,但它們一般都是這樣用的,關於它們的命名有歷史上的原因.
0 0
- 解析 ruby 全局變數
- Ruby 中$開頭的全局變數、內部變數、隱藏變數介紹
- ruby--ruby解析json
- ruby 局部變數
- 全局异常解析器
- MyBatis 全局配置文件解析
- ruby命令行解析
- Ruby解析XML文件
- Ruby 解析rss源
- Ruby解析XML文件
- ruby解析json、xml
- ruby 過程對象 解析
- ruby 類常量 解析
- ruby解析json、xml
- Ruby 正则表达式的解析
- Ruby解析XML简单实现
- Ruby on Rails 路由解析
- Ruby解析Windows PE文件
- H.图像匹配(安徽省2014年“京胜杯”大学生程序设计竞赛)
- Ruby中的反射(Reflection)應用實例
- 2840: 编程题AB-面粉质量差
- Linux下利用script命令录制并回放终端会话
- vs2010 单文档MFC 通过加载位图文件作为客户区背景
- 解析 ruby 全局變數
- gtk的国际化
- LocalFile,沙盒
- 一位网友的建议
- Hibernate学习记录1
- 艱難完成 nginx + puma 部署 rails 4的詳細記錄
- 欢迎使用CSDN-markdown编辑器
- ruby線程實現生產者消費者問題示例(隊列Queue實現線程同步)
- POJ 1177 Picture [离散化+扫描线+线段树]