成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

簡要分析Ruby局部域變量

開發(fā) 開發(fā)工具
Ruby局部域變量一般都是在某一個(gè)線程作用域之內(nèi)才能湊效。比如:$_ ;$& ;$~ ;$`;$' ;$+ ;$1 ;$2 ;$3等等。

Ruby作為一個(gè)靈活性較強(qiáng)的語言,內(nèi)置了許多內(nèi)部變量,不同的變量可以實(shí)現(xiàn)不同的功能,熟練的掌握這些變量的運(yùn)用,可以方便我們編程。 #t#

Ruby局部域變量就是其中之一。

在某一個(gè)線程作用域內(nèi)才能有效,下列也可看做是線程內(nèi)的局部變量.
PS:這邊講解的幾個(gè)變量都是于正則匹配相關(guān)的,正則匹配過程的代碼是一樣的,這里不重復(fù)輸入正則表達(dá)式匹配的代碼,只在***個(gè)例子里給出完整的輸入和輸出,之后的例子只直接輸出變量的值

Ruby局部域變量之$_

gets或readline***讀入的字符串.若遇到EOF則為nil.該變量的作用域是局部域. 

  1. irb(main):006:0> $_   
  2. => nil   
  3. irb(main):007:0> gets   
  4. foobar   
  5. => "foobar\n"   
  6. irb(main):008:0> $_   
  7. => "foobar\n"   

 

Ruby局部域變量之$&

在當(dāng)前作用域中,正則表達(dá)式***一次匹配成功的字符串.若***一次匹配失敗,則為nil. 

  1. irb(main):002:0> $&   
  2. => nil   
  3. irb(main):010:0> /(foo)(bar)(BAZ)?/
     =~ "foobarbaz"   
  4. => 0   
  5. irb(main):011:0> $&   
  6. => "foobar"   

 

Ruby局部域變量之$~

在當(dāng)前作用域中,***一次匹配成功的相關(guān)信息(MatchData對象-為處理與正則表達(dá)式的匹配過程相關(guān)的信息而設(shè)置的類.).
可以使用$~[n]的形式從該數(shù)據(jù)中抽取第n個(gè)匹配結(jié)果($n).相當(dāng)于是$1,$2...
等同于Regexp.last_match. 

  1. irb(main):012:0> $~   
  2. => #<MatchData "foobar" 1:
    "foo" 2:"bar" 3:nil
    >   
  3. irb(main):026:0> $1   
  4. => "foo"   
  5. irb(main):027:0> $~[1]   
  6. => "foo"   

 

Ruby局部域變量之$`

在當(dāng)前作用域中,正則表達(dá)式***一次匹配成功的字符串前面的字符串.若***的匹配失敗則為nil.
等同于Regexp.last_match.pre_match.

  1. irb(main):016:0> $`  
  2. => "" #由于***匹配成功的內(nèi)容是
    foobar,輸入的字符串前面沒有別
    的字符所以是"" 

Ruby局部域變量之$'

在當(dāng)前作用域中,正則表達(dá)式***一次匹配成功的字符串后面的字符串.若***的匹配失敗則為nil.
等同于Regexp.last_match.post_match. 

  1. irb(main):028:0> $'   
  2. => "baz" 

Ruby局部域變量之$+

在當(dāng)前作用域中,正則表達(dá)式***一次匹配成功的字符串部分中,與***一個(gè)括號相對應(yīng)的那部分字符串.若***的匹配失敗則為nil.在多項(xiàng)選擇型匹配模型中,若您無法斷定是哪個(gè)部分匹配成功時(shí),該變量將會非常有用.

  1. irb(main):029:0> $+   
  2. => "bar" 

 

Ruby局部域變量之$1
$2
$3 ...

分別存儲著***一次模型匹配成功時(shí)與第n個(gè)括號相匹配的值.若沒有相應(yīng)的括號時(shí),其值為nil.等同于Regexp.last_match[1], Regexp.last_match[2],... 
 

  1. irb(main):030:0> $1   
  2. => "foo"   
  3. irb(main):031:0> $2   
  4. => "bar"   
  5. irb(main):032:0> $3   
  6. => nil  

 

責(zé)任編輯:曹凱 來源: javaeye.com
相關(guān)推薦

2009-12-14 14:32:50

Ruby線程局部域變量

2009-12-15 10:48:54

Ruby局部變量

2009-12-14 13:19:07

Ruby字符串

2009-12-14 13:56:12

Ruby特點(diǎn)

2009-09-17 13:05:38

Linq局部變量類型

2010-04-01 09:26:31

2009-09-21 13:42:47

Hibernate查詢

2009-09-01 15:25:01

C#位域

2018-05-14 09:15:24

Python變量函數(shù)

2009-12-18 09:43:32

Ruby偽變量

2009-12-14 18:30:59

Ruby DSL特點(diǎn)

2009-08-26 16:37:07

C#迭代器局部變量

2009-11-02 17:12:01

VB和VB.NET

2009-12-14 14:40:10

Ruby全局域變量

2009-12-18 14:35:01

Ruby奇特變量

2009-12-14 14:50:46

Ruby傳參數(shù)

2009-12-17 17:04:09

Ruby函數(shù)參數(shù)傳遞

2011-04-18 09:31:35

JavaScript

2024-05-29 08:49:22

Python全局變量局部變量

2015-01-07 14:41:32

Android全局變量局部變量
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产一区二区三区四区 | 中文字幕一区二区三区四区 | 成人免费毛片片v | 亚洲视频网 | 中文字幕乱码视频32 | 亚洲一区中文字幕在线观看 | 天天射天天操天天干 | 国产玖玖| 亚洲欧美日韩电影 | 毛片一区二区三区 | 久久精品中文字幕 | 久久综合九九 | 99精品欧美一区二区蜜桃免费 | 国产一区二区三区四区区 | 日韩欧美在线精品 | 色婷婷亚洲国产女人的天堂 | 精品欧美一区二区在线观看视频 | 午夜在线免费观看 | 国产精品久久久乱弄 | av在线一区二区三区 | 午夜免费视频 | 欧美激情综合网 | 性色视频 | 成人国产精品 | 精品国产99| 欧美精品一区二区三区四区五区 | 国产精品亚洲第一 | 香蕉视频一区二区 | 91精品国产91久久久久久 | 亚洲日本欧美日韩高观看 | 草久网 | 99视频精品 | 亚洲国产一区在线 | 国产精品久久久久aaaa九色 | 亚洲精品99999 | 天天色天天射天天干 | 国产精品国产成人国产三级 | 亚洲精品在线视频 | 国产精品观看 | 亚洲日韩欧美一区二区在线 | 成人在线免费网站 |