麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Ruby > 正文

Ruby 中$開頭的變量介紹

2020-02-24 15:37:57
字體:
供稿:網(wǎng)友

Ruby中充滿了隱藏變量,我們可以從這些預(yù)定義的全局變量中獲得一些有趣的信息,今天武林技術(shù)頻道小編和大家分享Ruby 中$開頭的變量介紹,希望對你學(xué)習(xí)有幫助!

全局進(jìn)程變量

$$ 表示當(dāng)前運(yùn)行的 ruby 進(jìn)程。

復(fù)制代碼 代碼如下:
>> $$
=> 17170


我們可以從當(dāng)前進(jìn)程殺死它自己

?

復(fù)制代碼 代碼如下:

?


>> `kill -9 #{$$}`
[1]??? 17170 killed???? irb


$? 表示最近一個子進(jìn)程的狀態(tài)

?

?

?

異常和錯誤

$1 表示引起異常的信息。比如在這里 raise "there's no peanut butter",它的值就是 there's no peanut butter。

復(fù)制代碼 代碼如下:

>> begin raise "this town ain't big enough for the both of us" rescue puts $! end
this town ain't big enough for the both of us
=> nil


$@ 可以給出完整的引起錯誤的棧調(diào)用信息,它是一個數(shù)組。

?

?


>> begin raise 'no soup in kitchen' rescue [email protected] { |trace| puts trace } end
(irb):13:in `irb_binding'
/home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/workspace.rb:80:in `eval'
/home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/workspace.rb:80:in `evaluate'
/home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/context.rb:254:in `evaluate'
/home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:159:in `block (2 levels) in eval_input'
/home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:273:in `signal_status'
/home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:156:in `block in eval_input'
/home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:243:in `block (2 levels) in each_top_level_statement'
/home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `loop'
/home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `block in each_top_level_statement'
/home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `catch'
/home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `each_top_level_statement'
/home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:155:in `eval_input'
/home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:70:in `block in start'
/home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:69:in `catch'
/home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:69:in `start'
/home/meck/.rvm/rubies/ruby-1.9.3-p194/bin/>>'
=> ["(>>'"]

?


字符串和分隔符

$; 表示 String.split 里的分隔符,默認(rèn)是空格。


$/ 表述讀取輸入的行分隔符。它被用在 Kernel.gets 里。它通常表示新行,但可以被修改。這個很難展示,因?yàn)?irb 依賴 /n 作為讀取分隔符,如果把 $/ 設(shè)置成 nil,gets 就會讀取整個文件。

?

$/ 正好相反,它是作為輸出的行分隔符。

?

文件

假設(shè)有個叫l(wèi)etter.text的文件:


$. 表示文件當(dāng)前被讀取的行號。

?

復(fù)制代碼 代碼如下:

?


>> open('letter.txt').each { |line| puts "#{$.}: #{line}" }
1: Dear Caroline,
2: I think we need some honey for tea.
3: I also think that I may have misplaced my red tie, have you seen it?
4:
5: -Nick
=> #<File:letter.txt>


$_ 表示最后讀取的行。

?

?

?

匹配和正則表達(dá)式

$~ 表示最近一次正則匹配到的信息,如果有的話它就返回 MatchData 的示例,否則就是 nil。

復(fù)制代碼 代碼如下:

>> "the robots are coming, the robots are coming, the robots are coming" =~ /ro/
=> 4
>> $~
=> #<MatchData "ro">
>> $~.to_s
=> "ro"
>> "the robots are coming, the robots are coming, the robots are coming" =~ /cats/
=> nil
>> $~


$& 跟 $~ 非常相似,它返回最近一次匹配到的字符串。

?

復(fù)制代碼 代碼如下:

?


>> "the robots are coming, the robots are coming, the robots are coming" =~ /ro/
=> 4
>> $&


$' 表示匹配不分后面的字符串。

?

?

?

其他

$> 表示ruby 默認(rèn)的輸出對象,用在 Kernel.print 里。

復(fù)制代碼 代碼如下:

>> $> =? $> = $stderr
=> #<IO:<STDERR>>
>> puts 'no no no'
no no no
=> nil
>> $> = $stdin
/home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:168:in `write': not opened for writing (IOError)
??????? from /home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:168:in `print'
??????? from /home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:168:in `block (2 levels) in eval_input'
??????? from /home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:273:in `signal_status'
??????? from /home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:156:in `block in eval_input'
??????? from /home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:243:in `block (2 levels) in each_top_level_statement'
??????? from /home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `loop'
??????? from /home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `block in each_top_level_statement'
??????? from /home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `catch'
??????? from /home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `each_top_level_statement'
??????? from /home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:155:in `eval_input'
??????? from /home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:70:in `block in start'
??????? from /home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:69:in `catch'
??????? from /home/meck/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:69:in `start'
??????? from /home/meck/.rvm/rubies/ruby-1.9.3-p194/bin/irb:12:in `<main>'


$* 可能是最常用全局變量,它表示包含傳給 ruby 文件的所有變量的數(shù)組,假設(shè)有個叫 argument_echoer.rb 文件:

?

復(fù)制代碼 代碼如下:

?


$*.each { |arg| puts arg }


運(yùn)行它:

?

?

以上就是關(guān)于Ruby 中$開頭的變量介紹,如果你還想了解更多技術(shù)方面的知識,你可以來關(guān)注武林技術(shù)頻道網(wǎng),武林技術(shù)頻道小編會為你服務(wù)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 成人宗合网 | 成人不卡 | 天天操天天骑 | 日本高清黄色片 | 国产精品午夜未成人免费观看 | 韩国精品一区二区三区四区五区 | 日韩欧美视频一区二区三区 | 91精品国产综合久久婷婷香 | 红杏亚洲影院一区二区三区 | 在线看一区二区三区 | 欧美视频首页 | 国产午夜亚洲精品午夜鲁丝片 | 欧美视屏一区二区 | 龙的两根好大拔不出去h | 91精品国产99久久久久久 | 日韩精品久久久久久久电影99爱 | 99影视在线视频免费观看 | 91在线视频网址 | 国产成人高清成人av片在线看 | 综合网天天色 | 国产一级毛片视频在线! | 免费小毛片 | 毛片a片免费看 | 色偷偷一区 | 亚洲99 | 午夜色片 | 国产精品视频免费在线观看 | 久久国产精品二国产精品中国洋人 | 国产91一区二区三区 | 羞羞的视频免费观看 | 香蕉久久久久久 | 91成人天堂久久成人 | 国产成人精品免高潮在线观看 | 欧美一级高潮 | 亚洲精品aa | 羞羞网站视频 | 91精品国产91久久久久久 | 亚洲欧美国产精品va在线观看 | 日日草夜夜 | 日韩在线播放第一页 | 欧美一级淫片a免费播放口 91九色蝌蚪国产 |