當我們在寫模塊的時候,或多或少需要直接運行這個文件也可以執行一些方法,但是這樣對于當這個模塊被require或者include時,顯得不好,在ruby里,有沒有區分運行來自當前文件,還是被require的目標文件調用呢?
Python可以
比如像Python這樣
Ruby當然也可以
對于處處為程序員著想,擁有快樂編程理念的Ruby來說當然是可以區別的。其原理就是判斷啟動文件是否為模塊的代碼文件。
舉個例子
工具類模塊utils.rb
if __FILE__ == $0
puts 'called from direct running'
Utils::StringUtils.test()
end
直接運行,結果,if條件成立,執行了輸出
引用Utils的類test.rb
運行結果,引入模塊的條件不成立,沒有輸出called from direct running
新聞熱點
疑難解答
圖片精選