<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    閑云無衣
    無衣的筆記
    我們總是希望對未知事件分類.當它發生時,向其它方法傳遞一塊作為參數的代碼是最容易地解決方法,也就是說我們希望像處理數據一樣處理代碼.

    一個新的過程對象可以通過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
    posted on 2007-02-08 13:52 無衣 閱讀(190) 評論(0)  編輯  收藏 所屬分類: rails
     
    主站蜘蛛池模板: 亚洲乱亚洲乱妇24p| 97在线观看永久免费视频| 国产片免费在线观看| 亚洲性日韩精品一区二区三区 | 特黄特色大片免费| 国产又大又长又粗又硬的免费视频 | 免费一看一级毛片| 亚洲精品在线免费观看视频| 无码亚洲成a人在线观看| 妞干网免费视频在线观看| 好看的电影网站亚洲一区| 久久99免费视频| 中文字幕亚洲一区| 国精产品一区一区三区免费视频 | 国产成人精品日本亚洲专区61 | 最近的2019免费中文字幕| 亚洲AV无码一区东京热久久| 91精品视频在线免费观看| 精品亚洲AV无码一区二区三区| 最近免费中文字幕MV在线视频3| 久久亚洲一区二区| 国产精品高清免费网站| 亚洲国产成人精品不卡青青草原| 美女巨胸喷奶水视频www免费| 亚洲av不卡一区二区三区| 成人性生交大片免费看无遮挡| 亚洲精品日韩专区silk| 嫩草影院免费观看| 国产精品无码免费专区午夜| 亚洲白嫩在线观看| 国产一区二区三区在线观看免费| 久久www免费人成精品香蕉| 久久综合亚洲色一区二区三区| 久久爰www免费人成| 亚洲偷偷自拍高清| 亚洲男人第一无码aⅴ网站| 亚州**色毛片免费观看| 亚洲精品网站在线观看你懂的| 性做久久久久免费看| 国产精品区免费视频| 亚洲爆乳少妇无码激情|