自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Ruby奇特變量特殊性質(zhì)講解

開發(fā) 開發(fā)工具
Ruby奇特變量中有一種就是基于全局的魔法變量。掌握這些Ruby奇特變量可以幫助我們更好的編寫代碼,提高我們的編寫能力。

Ruby語言作為一種新型的編程語言,具有很多和其他編程語言不同的特有的性質(zhì)。在這里我們就為大家介紹一些Ruby奇特變量的相關(guān)概念。#t#

以前ruby從perl中借鑒了很多東西,Ruby奇特變量其中之一就是全局的魔法變量,在這些變量中,估計(jì)沒有沒有哪個(gè)有$_更奇特。比如,方法gets有這個(gè)一個(gè)效果:

在返回剛讀到的行數(shù)據(jù)的同時(shí),也把這行的數(shù)據(jù)存入$_.如果你調(diào)用print方法而沒有帶參數(shù),那么它將會(huì)打印出$_中的內(nèi)容。如果你在寫if或者while語句時(shí),僅將一個(gè)正則表達(dá)式作為條件,那么這個(gè)正則表達(dá)式會(huì)自動(dòng)去匹配$_.這樣的話,我們可以寫出下面這個(gè)短小精悍的程序來實(shí)現(xiàn)在所有的行中找出那些包含郵箱地址的行。

  1. while gets  
  2. if /[a-zA-Z0-9\.\-_]
    @[a-zA-Z0-9\.\-_]/  
  3. print  
  4. end  
  5. end 

但是,對(duì)于Ruby來說,這樣還不夠簡潔,我們可以這樣

  1. ARGF.each {|line| print line if 
    line =~ /[a-zA-Z0-9\.\-_]@[a-zA-Z0-9\.\-_]/ } 

呵呵,怎么樣,吃驚了吧,一條語句就搞定了,Ruby奇特變量就是高效!

另外還有一個(gè)全局變量,$. 里面的內(nèi)容是文件的總行數(shù)

還有其他的全局變量$&,&`,&' 這幾個(gè)全局變量分別用于正則表達(dá)式中。

當(dāng)你用match或者=~去匹配一個(gè)字符串和一個(gè)正則表達(dá)式時(shí),結(jié)果是:$&存放字符串中匹配正則表達(dá)式的部分,$`存放字符串中$&部分的前一個(gè)字符串,$'存放字符串中$&部分的后一個(gè)字符串。

比如

  1. str="good day! woodfish1988@
    163.com It's a email"
     
  2. reg=/[a-zA-Z0-9\-\._]+@
    [a-zA-Z0-9\-\._]+/  
  3. reg=~str  
  4. puts $`,$&,$' 

 

 

結(jié)果是

good day!
woodfish1988@163.com
It's a email

同時(shí),在匹配后全局標(biāo)量$1..$9里面存放的匹配于正則表達(dá)式中的各個(gè)小內(nèi)容(也就是由括號(hào)括起來的內(nèi)容,具體請(qǐng)看正則表達(dá)式教程)

例如:

 

  1. code="<a href='http://
    www.google.com'>Google</a>"
     
  2. reg=/<a href='(.+)'>(.+)<\/a>/  
  3. reg=~code  
  4. puts $1,$2 

結(jié)果是

http://www.google.com
Google

以上就是對(duì)Ruby奇特變量的具體介紹。

責(zé)任編輯:曹凱 來源: 博客園
相關(guān)推薦

2009-12-14 14:32:50

Ruby線程局部域變量

2010-03-05 10:25:35

Python元組

2009-12-14 09:33:04

Ruby安裝

2009-12-15 11:01:31

Ruby數(shù)組

2009-12-15 15:28:22

Ruby重載

2009-12-18 15:56:05

Ruby特殊語法

2009-12-15 14:58:19

Ruby迭代器

2009-12-16 14:24:48

Ruby函數(shù)lambd

2009-12-14 15:30:43

安裝Ruby on R

2009-12-15 15:19:30

Ruby訪問控制

2015-01-26 10:07:48

2009-12-16 15:41:10

Ruby on Rai

2009-12-16 17:37:31

Ruby on Rai

2023-03-22 18:33:05

Bash變量

2009-12-15 09:56:51

Ruby流程控制

2010-07-20 12:52:26

Perl特殊變量

2009-12-18 09:43:32

Ruby偽變量

2009-12-14 11:33:59

Ruby正則表達(dá)式

2009-12-15 13:15:11

Ruby字符串

2009-12-14 14:07:02

Ruby局部域變量
點(diǎn)贊
收藏

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