第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在Ruby中,Required_Relative和Required之間有什么區(qū)別?

在Ruby中,Required_Relative和Required之間有什么區(qū)別?

GCT1015 2019-07-05 13:15:00
在Ruby中,Required_Relative和Required之間有什么區(qū)別?.之間的區(qū)別是什么?require_relative和require在魯比?
查看完整描述

3 回答

?
墨色風(fēng)雨

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊

只要看看博士:

require_relative補(bǔ)充內(nèi)建法require通過允許加載相對(duì)于包含require_relative聲明。

例如,如果在“test”目錄中有單元測(cè)試類,而在test“test/data”目錄下有它們的數(shù)據(jù),那么您可以在測(cè)試用例中使用如下一行:

require_relative "data/customer_data_1"


查看完整回答
反對(duì) 回復(fù) 2019-07-05
?
jeck貓

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊

require_relative的一個(gè)方便子集。require

require_relative('path')

相等:

require(File.expand_path('path', File.dirname(__FILE__)))

如果__FILE__被定義,或者它會(huì)引發(fā)LoadError不然的話。

這意味著:

  • require_relative 'a'require_relative './a'相對(duì)于當(dāng)前文件 (__FILE__).

    這是您需要在庫中使用的內(nèi)容,因?yàn)槟幌MY(jié)果依賴于調(diào)用方的當(dāng)前目錄。

  • eval('require_relative("a.rb")')提高LoadError因?yàn)?/trans>__FILE__內(nèi)部未定義eval.

    這就是為什么你不能用require_relative在RSpec測(cè)試中,eval愛德。

下面的操作只能在require:

  • require './a.rb'相對(duì)于當(dāng)前目錄

  • require 'a.rb'使用搜索路徑($LOAD_PATH)要求。它找不到相對(duì)于當(dāng)前目錄或路徑的文件。

    這是不可能的require_relative因?yàn)槲臋n說只有當(dāng)“文件名不解析到絕對(duì)路徑”時(shí)才會(huì)進(jìn)行路徑搜索(即以/./../),這種情況總是發(fā)生在File.expand_path.

使用這兩種方法都可以執(zhí)行以下操作,但您需要使用require因?yàn)樗谈行剩?/trans>

  • require '/a.rb'

    require_relative '/a.rb'

    兩者都需要絕對(duì)路徑。

讀源

當(dāng)文檔不清楚時(shí),我建議您查看源代碼(切換文檔中的源代碼)。在某些情況下,它有助于理解正在發(fā)生的事情。

要求:

VALUE rb_f_require(VALUE obj, VALUE fname) {
  return rb_require_safe(fname, rb_safe_level());}

要求親屬:

VALUE rb_f_require_relative(VALUE obj, VALUE fname) {
    VALUE base = rb_current_realfilepath();
    if (NIL_P(base)) {
        rb_loaderror("cannot infer basepath");
    }
    base = rb_file_dirname(base);
    return rb_require_safe(rb_file_absolute_path(fname, base), rb_safe_level());}

這使得我們可以得出結(jié)論

require_relative('path')

與:

require(File.expand_path('path', File.dirname(__FILE__)))

因?yàn)椋?/trans>

rb_file_absolute_path   =~ File.expand_path
rb_file_dirname1        =~ File.dirname
rb_current_realfilepath =~ __FILE__


查看完整回答
反對(duì) 回復(fù) 2019-07-05
  • 3 回答
  • 0 關(guān)注
  • 795 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)