最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Ruby中區(qū)分運行來源的方法

 更新時間:2015年01月19日 09:34:10   投稿:junjie  
這篇文章主要介紹了Ruby中區(qū)分運行來源的方法,本文講解的是類似Python中的if __name__ == '__main__':效果,其實Ruby中也有類似語法,需要的朋友可以參考下

當(dāng)我們在寫模塊的時候,或多或少需要直接運行這個文件也可以執(zhí)行一些方法,但是這樣對于當(dāng)這個模塊被require或者include時,顯得不好,在ruby里,有沒有區(qū)分運行來自當(dāng)前文件,還是被require的目標(biāo)文件調(diào)用呢?

Python可以

比如像Python這樣

復(fù)制代碼 代碼如下:

if __name__ == '__main__':
    print "from direct running"

Ruby當(dāng)然也可以

對于處處為程序員著想,擁有快樂編程理念的Ruby來說當(dāng)然是可以區(qū)別的。其原理就是判斷啟動文件是否為模塊的代碼文件。

復(fù)制代碼 代碼如下:

if __FILE__ == $0
    puts 'called from direct running'
end

舉個例子

工具類模塊utils.rb

復(fù)制代碼 代碼如下:

module Utils
    class StringUtils
        def self.test
            puts "test method myfile=" + __FILE__ + ';load from ' +  $0
        end
    end
end

if __FILE__ == $0
    puts 'called from direct running'
    Utils::StringUtils.test()
end

直接運行,結(jié)果,if條件成立,執(zhí)行了輸出

復(fù)制代碼 代碼如下:

20:04:37-androidyue~/rubydir/test$ ruby utils.rb
called from direct running
test method myfile=utils.rb;load from utils.rb

引用Utils的類test.rb

復(fù)制代碼 代碼如下:

require './utils'
Utils::StringUtils.test()

運行結(jié)果,引入模塊的條件不成立,沒有輸出called from direct running

復(fù)制代碼 代碼如下:

20:08:07-androidyue~/rubydir/test$ ruby test.rb
test method myfile=/home/androidyue/rubydir/test/utils.rb;load from test.rb

相關(guān)文章

  • Ruby中檢測Gem是否安裝的方法

    Ruby中檢測Gem是否安裝的方法

    這篇文章主要介紹了Ruby中檢測Gem是否安裝的方法,本文直接給出實現(xiàn)代碼以及使用方法,需要的朋友可以參考下
    2015-01-01
  • Ruby正則表達式詳解

    Ruby正則表達式詳解

    正則表達式是一種特殊序列的字符,它通過使用有專門語法的模式來匹配或查找字符串集合,這篇文章纖細(xì)介紹了Ruby大的正則表達式,文章有詳細(xì)的代碼示例,需要的朋友可以參考一下
    2023-04-04
  • 解析proxy代理模式在Ruby設(shè)計模式開發(fā)中的運用

    解析proxy代理模式在Ruby設(shè)計模式開發(fā)中的運用

    這篇文章主要介紹了proxy代理模式在Ruby設(shè)計模式開發(fā)中的運用,通過代理模式以客戶透明的形式可以動態(tài)地為目標(biāo)對象加以行為控制,需要的朋友可以參考下
    2016-04-04
  • Ruby的基礎(chǔ)語法入門學(xué)習(xí)教程

    Ruby的基礎(chǔ)語法入門學(xué)習(xí)教程

    這篇文章主要介紹了Ruby的基礎(chǔ)語法入門學(xué)習(xí)教程,包括空白和保留字等書寫的基本知識點,需要的朋友可以參考下
    2015-10-10
  • Ruby編程中關(guān)于中斷和返回的用法教程

    Ruby編程中關(guān)于中斷和返回的用法教程

    這篇文章主要介紹了Ruby編程中關(guān)于中斷和返回的用法教程,作者用代碼舉例講解了其中需要注意的問題,需要的朋友可以參考下
    2015-05-05
  • rails常用數(shù)據(jù)庫查詢操作、方法淺析

    rails常用數(shù)據(jù)庫查詢操作、方法淺析

    這篇文章主要介紹了rails常用數(shù)據(jù)庫查詢操作、方法淺析,總結(jié)的比較全,WEB開發(fā)種常用的數(shù)據(jù)庫操作都列出了rails對應(yīng)代碼,需要的朋友可以參考下
    2014-06-06
  • 實例講解Ruby使用設(shè)計模式中的裝飾器模式的方法

    實例講解Ruby使用設(shè)計模式中的裝飾器模式的方法

    這篇文章主要介紹了Ruby使用設(shè)計模式中的裝飾器模式的實例, 裝飾模式能夠?qū)崿F(xiàn)動態(tài)的為對象添加功能,需要的朋友可以參考下
    2016-03-03
  • Luhn算法學(xué)習(xí)及其Ruby版實現(xiàn)代碼示例

    Luhn算法學(xué)習(xí)及其Ruby版實現(xiàn)代碼示例

    Luhn算法主要北用來進行數(shù)字驗證,尤其是卡號身份證號等,這里我們就來看一下Luhn算法學(xué)習(xí)及其Ruby版實現(xiàn)代碼示例:
    2016-05-05
  • Ruby中的block、proc、lambda區(qū)別總結(jié)

    Ruby中的block、proc、lambda區(qū)別總結(jié)

    這篇文章主要介紹了Ruby中的block、proc、lambda區(qū)別總結(jié),本文講解了yield 和 block call 的區(qū)別、block 和 proc、lambda 的區(qū)別、proc 和 lambda 的區(qū)別,需要的朋友可以參考下
    2015-03-03
  • Ruby中的變量學(xué)習(xí)總結(jié)

    Ruby中的變量學(xué)習(xí)總結(jié)

    這篇文章主要介紹了Ruby中的變量學(xué)習(xí)總結(jié),本文詳細(xì)講解了Ruby中的局部變量、實例變量、類變量、全局變量等4種變量類型,并對它們的作用范圍做了總結(jié),需要的朋友可以參考下
    2014-11-11

最新評論

屯门区| 巩留县| 锡林郭勒盟| 嘉善县| 合水县| 满城县| 阿拉尔市| 门头沟区| 曲麻莱县| 宜宾县| 罗山县| 淳安县| 清水河县| 朝阳区| 冷水江市| 侯马市| 青岛市| 通渭县| 昌平区| 淮南市| 本溪| 泰州市| 卢湾区| 界首市| 嵊州市| 涟源市| 玉山县| 岑溪市| 菏泽市| 万荣县| 久治县| 陕西省| 深水埗区| 永寿县| 长葛市| 浮山县| 安岳县| 呼伦贝尔市| 营山县| 晋江市| 梧州市|