国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

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

2019-10-26 19:25:15
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

Python可以

比如像Python這樣

代碼如下:
if __name__ == '__main__':
    print "from direct running"

Ruby當(dāng)然也可以

對(duì)于處處為程序員著想,擁有快樂(lè)編程理念的Ruby來(lái)說(shuō)當(dāng)然是可以區(qū)別的。其原理就是判斷啟動(dòng)文件是否為模塊的代碼文件。
代碼如下:
if __FILE__ == $0
    puts 'called from direct running'
end

舉個(gè)例子

工具類模塊utils.rb

代碼如下:
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í)行了輸出

代碼如下:
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

代碼如下:
require './utils'
Utils::StringUtils.test()

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

代碼如下:
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ā)表
主站蜘蛛池模板: 富阳市| 蓬安县| 韩城市| 阿图什市| 海伦市| 拉孜县| 古浪县| 谢通门县| 波密县| 闵行区| 诸城市| 怀宁县| 上虞市| 抚松县| 台州市| 广饶县| 福建省| 新津县| 闻喜县| 腾冲县| 和顺县| 岳阳市| 五大连池市| 阿克| 登封市| 康平县| 永嘉县| 安新县| 徐汇区| 深州市| 霸州市| 哈尔滨市| 辽中县| 密云县| 靖远县| 西安市| 新安县| 西充县| 罗定市| 万州区| 天水市|