麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Ruby > 正文

ruby 過程對象 解析

2020-03-29 12:12:02
字體:
來源:轉載
供稿:網友
我們總是希望對未知事件分類.當它發生時,向其它方法傳遞一塊作為參數的代碼是最容易地解決方法,也就是說我們希望像處理數據一樣處理代碼.

一個新的過程對象可以通過proc創建:

ruby> quux = proc {
    |   print "QUUXQUUXQUUX!!!/n"
    | }
   #<Proc:0x4017357c>  


現在quux指向一個對象,像其它對象一樣,它也有可以調用的行為.特別的,我們可以用call方法執行它:

ruby> quux.call
QUUXQUUXQUUX!!!
   nil  


那么quux可以用做一個方法的參數嗎?當然.

ruby> def run( p )
    |   print "About to call a procedure.../n"
    |   p.call
    |   print "There: finished./n"
    | end
   nil
ruby> run quux
About to call a procedure...
QUUXQUUXQUUX!!!
There: finished.
   nil  


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

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


一般的,敲入^C將導致解釋器退出.但現在一個信息被打印出來,解釋器繼續執行著,所以你不會丟失掉正在作業的工作.(你不會永遠留在解釋器里,你仍可以用 exit 或者按 ^D退出)

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

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


或著更簡略,

ruby> trap "SIGINT", 'print "^C was pressed./n"'
   nil  


這種簡寫為你提供了一種方便和可讀性更強的寫小匿名過程的路子. 
 

上一篇:ruby 變量

下一篇:ruby 模塊

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: sesee99| 91网站在线观看视频 | 成年人视频在线免费观看 | 精品国产欧美一区二区 | 羞羞答答视频 | 91久久综合| 亚州精品在线视频 | 国产亚洲精品成人 | 性 毛片 | 久色成人网 | 欧美91看片特黄aaaa | 欧美日韩在线播放 | 黄色国产在线观看 | 国产三级国产精品国产普男人 | 久久久久久久亚洲视频 | 欧美1区2区| 欧美精品国产综合久久 | 欧美一级黄色免费看 | 精品国产乱码久久久久久久 | 91香蕉影视 | 中文字幕亚洲一区二区三区 | 免费看欧美一级特黄a毛片 九色com | 成人免费自拍视频 | 中文字幕欧美一区二区三区 | 一区二区三级视频 | 久久99国产精品久久99果冻传媒 | 黄色网址在线播放 | 青青操国产 | 日韩视频在线视频 | 国产午夜精品久久久久久免费视 | 午夜爽爽爽男女免费观看hd | 日本中文字幕电影在线观看 | 久久噜噜噜精品国产亚洲综合 | 成人免费精品视频 | 欧美国产永久免费看片 | 成人免费久久 | 国产日韩亚洲 | 亚洲成年人免费网站 | 国产精品视频不卡 | 亚洲日本韩国在线观看 | 精品国产一区二区三区成人影院 |