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

全方位解讀Ruby過程對象

開發(fā) 開發(fā)工具
我們在這里為大家介紹了幾段Ruby過程對象的一些相關(guān)代碼示例,方便大家理解。希望通過這篇文章可以幫助大家提高對Ruby的理解程度。

Ruby作為一個(gè)新的語言,其性能的優(yōu)越性很快成為了編程人員熱衷的語言之一。它是一款完全面向?qū)ο蟮慕忉屝湍_本語言。在這里我們將會(huì)學(xué)到Ruby過程對象的一些知識(shí)。#t#

一個(gè)新的Ruby過程對象可以通過proc創(chuàng)建:

  1. ruby> quux = proc {   
  2. | print "QUUXQUUXQUUX!!!\n"   
  3. | }   
  4. #< Proc:0x4017357c>  

 

現(xiàn)在quux指向一個(gè)對象,像其它對象一樣,它也有可以調(diào)用的行為.特別的,我們可以用call方法執(zhí)行它:

  1. ruby> quux.call   
  2. QUUXQUUXQUUX!!!   
  3. nil   

 

那么quux可以用做一個(gè)方法的參數(shù)嗎?當(dāng)然.

  1. ruby> def run( p )   
  2. | print "About to call
     a procedure...\n"   
  3. | p.call   
  4. | print "There: finished.\n"   
  5. | end   
  6. nil   
  7. ruby> run quux   
  8. About to call a procedure...   
  9. QUUXQUUXQUUX!!!   
  10. There: finished.   
  11. nil  

 

trap方法令到我們可以對任何系統(tǒng)信號做出我們自己的選擇.

  1. ruby> inthandler = proc
    { print "^C was pressed.\n" }   
  2. #<Proc:0x401730a4>   
  3. ruby> trap "SIGINT", inthandler   
  4. #<Proc:0x401735e0>   

 

一般的,敲入^C將導(dǎo)致解釋器退出.但現(xiàn)在一個(gè)信息被打印出來,解釋器繼續(xù)執(zhí)行著,所以你不會(huì)丟失掉正在作業(yè)的工作.(你不會(huì)永遠(yuǎn)留在解釋器里,你仍可以用 exit 或者按 ^D退出)

最后在我們開始下一節(jié)之前還應(yīng)注意的一點(diǎn)是:在將一個(gè)Ruby過程對象捆綁到一個(gè)信號之前,不是必須給這個(gè)過程對象命名的.一個(gè)等效的匿名(anonymous)過程對象像這樣

  1. ruby> trap "SIGINT", proc
    { print "^C was pressed.\n" }   
  2. nil  

或著更簡略,

  1. ruby> trap "SIGINT", 
    'print "^C was pressed.\n"'   
  2. nil   

 

Ruby過程對象的這種簡寫為你提供了一種方便和可讀性更強(qiáng)的寫小匿名過程的路子。

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

2009-12-16 17:07:27

Ruby on Rai

2009-12-14 17:04:13

Ruby讀寫UNIX命

2009-12-15 10:48:54

Ruby局部變量

2009-12-16 09:29:26

Ruby布爾表達(dá)式

2010-01-04 14:06:35

Silverlight

2009-12-21 13:06:05

WCF Address

2009-12-15 17:28:11

Ruby自動(dòng)化腳本框架

2014-06-26 17:25:22

車聯(lián)網(wǎng) ECU

2010-01-27 13:52:15

Android多媒體框

2011-10-26 09:28:28

紅帽大數(shù)據(jù)Gluster

2017-09-13 15:37:53

2010-01-05 09:57:34

.NET Framew

2024-05-10 14:35:56

人工智能大型語言模型

2013-03-01 09:56:57

2016-02-16 14:42:58

戴爾云計(jì)算

2016-12-14 14:43:11

ButterknifeAndroid

2017-08-09 09:19:30

2010-01-11 13:42:20

VB.NET字符串加密

2024-04-08 11:52:08

PromQL技術(shù)監(jiān)控

2010-08-04 14:15:44

nfs服務(wù)
點(diǎn)贊
收藏

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