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

首頁(yè) > 編程 > Ruby > 正文

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

2020-10-29 19:42:29
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

當(dāng)我們?cè)趯?xiě)模塊的時(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這樣

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

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

Ruby當(dāng)然也可以

對(duì)于處處為程序員著想,擁有快樂(lè)編程理念的Ruby來(lái)說(shuō)當(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é)果,引入模塊的條件不成立,沒(méi)有輸出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ā)表
主站蜘蛛池模板: 株洲市| 廉江市| 亳州市| 玉田县| 容城县| 清苑县| 治多县| 扶沟县| 常山县| 宁津县| 株洲县| 封丘县| 仙游县| 嵊泗县| 霍州市| 教育| 天等县| 屏山县| 双牌县| 安化县| 廊坊市| 香格里拉县| 吉首市| 桃园县| 抚州市| 离岛区| 丹阳市| 天台县| 阿拉善右旗| 页游| 防城港市| 玛纳斯县| 旬阳县| 砚山县| 茶陵县| 昂仁县| 池州市| 新泰市| 瓮安县| 屏东县| 万荣县|