日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Rubyblocks提供靈活編碼手段

Ruby語言的出現(xiàn),改變了程序員傳統(tǒng)的編寫誒代碼方式,使編程人員在編寫代碼時會有一種非常愉悅的心情。在這里我們?yōu)榇蠹医榻B一種靈活編碼手段Ruby blocks。#t#

創(chuàng)新互聯(lián)公司主營雞冠網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都APP應(yīng)用開發(fā),雞冠h5小程序定制開發(fā)搭建,雞冠網(wǎng)站營銷推廣歡迎雞冠等地區(qū)企業(yè)咨詢

先來看一下這段代碼:

  1. class SongList  
  2. def [](key)  
  3. return @songs[key] if 
    key.kind_of?(Integer)  
  4. return @songs.find { 
    |aSong| aSong.name == key }  
  5. end  
  6. end 

在第四行中,有find這樣一個方法,可以按照指定條件對songs進行遍歷,最終返回一個符合條件的個體。

下面就來看看這個方法到底是怎么實現(xiàn)的。

 
 
 
  1. class Array   
  2. def find   
  3. for i in 0size   
  4. value = self[i]   
  5. return value if yield(value)   
  6. end   
  7. return nil   
  8. end   
  9. end  

發(fā)現(xiàn)是在Array這個類中,增加了一個method,在method中嵌入了一個遍歷操作。如果只是這樣的話,那么ruby和其他語言也就沒有什么差別了,我們注意到第5行中有yield,這么一個東東。其實他起到了一個代理的作用,實現(xiàn)了實際操作部分和遍歷的分離。

再看看下面這個例子,來了解一下yield的功能。

 
 
 
  1. 1def threeTimes  
  2. yield  
  3. yield  
  4. yield  
  5. end  
  6. threeTimes { puts "Hello" } 

這里定義了名叫threeTimes的blocks, Ruby blocks中會重復(fù)3次外部的操作,當row 6的代碼執(zhí)行后,會得到后面的結(jié)果:
Hello
Hello
Hello

可以看到blocks為我們提供了如此靈活的手段,其實他語言中需要通過代理或接口或函數(shù)指針來實現(xiàn)。
其實.net 3.x以后的版本也提供了類似的功能,一個叫LINQ(Language Integrated Query )的東東。
可以使用類似SQL的方式過濾集合

 
 
 
  1. LINQ Query:  
  2. string[] names = { "Geoff", 
    "Jessica", "Mike", "Megan",  
  3. "Priscilla", "Jack", "Alma" };  
  4. IEnumerable expr = 
    from s in names  
  5. where s.Length == 5  
  6. orderby s  
  7. select s.ToUpper();  
  8. foreach (string item in expr)  
  9. Console.WriteLine(item); 

上面的用法是不是很簡潔方便?用ruby來實現(xiàn)的話,將會是這樣:

 
 
 
  1. names = [ "Geoff", "Jessica", 
    "Mike", "Megan", "Priscilla",  
  2. "Jack", "Alma" ]   
  3. expr = names.select {  
  4. |n| n.length == 5  
  5. }.sort.collect { |n| n.upcase }  
  6. expr.each {|n| puts n } 

正因為Ruby blocks如此方便,在閱讀ruby程序的時候,可以看到被廣泛的使用著。


網(wǎng)站標題:Rubyblocks提供靈活編碼手段
本文來源:http://m.5511xx.com/article/dhcodgd.html