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

首頁 > 編程 > Ruby > 正文

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

2020-10-29 19:42:29
字體:
供稿:網(wǎng)友

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

Python可以

比如像Python這樣

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

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

Ruby當(dāng)然也可以

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

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

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

舉個(gè)例子

工具類模塊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

直接運(yùn)行,結(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()

運(yùn)行結(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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 精品亚洲一区二区 | 成人一级免费 | 免费观看一级 | 91av久久| 国产午夜精品久久久 | 国产午夜精品在线 | 成人一级免费视频 | 久久美女免费视频 | 国产成人在线综合 | 蜜桃传媒视频麻豆第一区免费观看 | 九九热精品视频在线 | 欧美性猛交xxx乱大交3蜜桃 | 黄色一级片免费在线观看 | 做羞羞视频 | 黄色日韩网站 | 天天夜天天操 | 黄色aaa视频 | 亚洲狠狠入 | 久在线观看福利视频69 | 成人aaaaa片毛片按摩 | 久久99精品视频在线观看 | 国产精品视频在线观看免费 | 护士xxxx | 久久精品免费网站 | 久久丝袜脚交足黄网站免费 | 欧美日韩大片在线观看 | 欧美性受ⅹ╳╳╳黑人a性爽 | 午夜影视一区二区 | 激情视频免费看 | 黑人一级片视频 | 精品国产视频一区二区三区 | 一级一级一级一级毛片 | 国产91精品久久久久久久 | 国产一国产精品一级毛片 | 国产va在线观看 | 久久精品久久久久 | 麻豆传传媒久久久爱 | www.com国产精品 | 久久99精品久久久久久秒播放器 | 在线成人免费观看视频 | 91 在线视频观看 |