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

簡要分析Ruby局部域變量

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

Ruby作為一個靈活性較強的語言,內置了許多內部變量,不同的變量可以實現不同的功能,熟練的掌握這些變量的運用,可以方便我們編程。 #t#

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

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

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局部域變量之$&

在當前作用域中,正則表達式***一次匹配成功的字符串.若***一次匹配失敗,則為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局部域變量之$~

在當前作用域中,***一次匹配成功的相關信息(MatchData對象-為處理與正則表達式的匹配過程相關的信息而設置的類.).
可以使用$~[n]的形式從該數據中抽取第n個匹配結果($n).相當于是$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局部域變量之$`

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

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

Ruby局部域變量之$'

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

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

Ruby局部域變量之$+

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

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

 

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

分別存儲著***一次模型匹配成功時與第n個括號相匹配的值.若沒有相應的括號時,其值為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  

 

責任編輯:曹凱 來源: javaeye.com
相關推薦

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特點

2009-09-17 13:05:38

Linq局部變量類型

2010-04-01 09:26:31

2009-09-21 13:42:47

Hibernate查詢

2018-05-14 09:15:24

Python變量函數

2009-09-01 15:25:01

C#位域

2009-12-18 09:43:32

Ruby偽變量

2009-12-14 18:30:59

Ruby DSL特點

2009-08-26 16:37:07

C#迭代器局部變量

2009-11-02 17:12:01

VB和VB.NET

2009-12-18 14:35:01

Ruby奇特變量

2009-12-14 14:40:10

Ruby全局域變量

2009-12-14 14:50:46

Ruby傳參數

2009-12-17 17:04:09

Ruby函數參數傳遞

2011-04-18 09:31:35

JavaScript

2024-05-29 08:49:22

Python全局變量局部變量

2015-01-07 14:41:32

Android全局變量局部變量
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一级免费视频 | av黄色在线观看 | 精品一区二区三区在线观看国产 | 欧美综合一区 | 精品国产精品一区二区夜夜嗨 | 久久久久久久久久久久久久av | 成人精品一区二区三区中文字幕 | 精品国产免费一区二区三区演员表 | 国产成人高清 | 精品欧美一区二区在线观看 | 免费久久99精品国产婷婷六月 | 日韩午夜| 欧美aa在线 | 午夜精品久久久久久久星辰影院 | 成人做爰69片免费观看 | 国产性色视频 | 精品在线免费观看视频 | 亚洲三区视频 | 天天射美女 | 国产乱码精品1区2区3区 | av小说在线 | 91精品久久久久久久久久小网站 | 日本激情视频在线播放 | 久国产精品 | 成人福利在线视频 | 欧美一级淫片007 | 亚洲欧美日本在线 | 日日碰狠狠躁久久躁96avv | 在线观看国产精品一区二区 | 日韩中文字幕一区 | 中文字幕一区二区三区四区五区 | 免费一区二区三区 | 九九九精品视频 | 欧美aaa一级片 | 91免费在线看 | 久久久天天 | 视频1区2区 | 久久国产精品免费一区二区三区 | 亚洲在线视频 | 免费观看的黄色网址 | 欧美一区二区久久 |