国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 商城县| 肃南| 凤山县| 清远市| 炎陵县| 德化县| 皋兰县| 桂东县| 大姚县| 喀喇| 前郭尔| 海淀区| 大庆市| 铁岭市| 巨野县| 泗洪县| 竹北市| 蒙自县| 株洲县| 乌什县| 永州市| 通道| 正蓝旗| 龙川县| 永城市| 柞水县| 鹤庆县| 锦屏县| 海晏县| 五寨县| 嵊州市| 平度市| 武胜县| 祁阳县| 辽宁省| 宾川县| 中西区| 高平市| 长汀县| 四会市| 夏河县|