同一目錄下的檔案,如/usr/local/ruby/foo.rb與/usr/local/ruby/bar.rb兩個檔案。
如果直接在foo.rb中
require 'bar'
執行時會報找不到bar.rb錯誤。
這是因為執行
/hwww.cppcns.comome/oldsong$ ruby /usr/local/ruby/foo.rb
時會在ruby安裝的lib目錄和/home/oldsong/目錄下查詢bar.rb。而不會去rb檔案的目錄/usr/local/ruby/下查詢。
所以除引用系統rb外,require中不能用相對路徑。
下面結合我個人經驗介紹幾種引用單個和目錄下所有rb的方法。
1、引用乙個檔案
例: 引用當前rb同目錄下的file_to_require.程式設計客棧rb
先介紹3種方法
require file.join(__file_, '../file_to_require')。
require file.expand_path('../file_to_require', __file__)
require file.dirname(__file__) + '/file_to_require'
其中,file.expand_path是rails常用的做法。
__file__為常量,表示當前檔案的絕對路徑,如/home/oldsong/test.rb
法四:
$load_path.unshift(file.dirname(__file__))
require 'bar'
先把目錄加入lo變數中,然後可直接引用檔名。
2、引用乙個目錄下所有檔案
ruby沒有j**a中的import j**a.io.*;
引用時不能用萬用字元,估計以後的版本有可能加上。
例:引用當前rb相同目錄下lib/檔案下所有*.rb檔案。
法一:
dir[file.dirname(__www.cppcns.comfile__) + '/lib/*.rb'].each
法二:乙個gemwww.cppcns.com搞定
本文標題: 舉例講解ruby中require的使用方法
本文位址:
linux中fork 函式 舉例講解!
乙個程序,包括 資料和分配給程序的資源。fork 函式通過系統呼叫建立乙個與原來程序幾乎完全相同的程序,也就是兩個程序可以做完全相同的事。但如果初始引數或者傳入的變數不同,兩個程序也可以做不同的事。乙個程序呼叫fork 函式後,系統先給新的程序分配資源,例如儲存資料和 的空間。然後把原來的程序的所有...
Ruby 語法講解
讓我們編寫乙個簡單的 ruby 程式。所有的 ruby 副檔名都是.rb。所以,把下面的源 放在 test.rb 檔案中。usr bin ruby w puts hello,ruby 在這裡,假設您的 usr bin 目錄下已經有可用的 ruby 直譯器。現在,嘗試執行這個程式,如下所示 ruby ...
AdaBoost演算法講解 舉例
adaboost演算法的目標是提高 學習演算法 比如說lms演算法 的 分類準確率。adaboost演算法提供的是框架 可以使用各種學習方法構建子分類器。二 演算法分析 步驟 根據訓練樣本設計乙個分類器,根據分類的結果,改變每個樣本的權重,產生乙個弱分類器,一直迭代,直到最後的誤差率小於給定的誤差率...