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

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

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

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

Python可以

比如像Python這樣

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

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

Ruby當然也可以

對于處處為程序員著想,擁有快樂編程理念的Ruby來說當然是可以區(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)文章

最新評論

鄂尔多斯市| 乃东县| 拉萨市| 榕江县| 双鸭山市| 仁怀市| 黎城县| 安徽省| 宣威市| 湟中县| 米林县| 合水县| 太白县| 四川省| 内江市| 修武县| 娄底市| 舞钢市| 舒城县| 朝阳市| 哈尔滨市| 文安县| 西青区| 扶绥县| 宁阳县| 通山县| 抚顺市| 措美县| 赣州市| 鄂伦春自治旗| 十堰市| 赤峰市| 墨玉县| 新野县| 固原市| 南丰县| 改则县| 和平区| 濉溪县| 得荣县| 陵川县|