亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Ruby中的include和require有什么區別?

Ruby中的include和require有什么區別?

瀟瀟雨雨 2019-09-27 16:46:32
我的問題類似于“ 在Ruby中包含和擴展之間有什么區別? ”。require和includeRuby有什么區別?如果我只想使用我班上某個模塊中的方法,應該require還是include應該?
查看完整描述

3 回答

?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

Ruby中的“ include”和“ require”有什么區別?


回答:


include和require方法的作用截然不同。


require方法可以完成大多數其他編程語言所包含的功能:運行另一個文件。它還會跟蹤您過去所需的內容,并且不需要兩次相同的文件。要運行沒有此附加功能的另一個文件,可以使用load方法。


include方法將從另一個模塊中獲取所有方法,并將它們包括到當前模塊中。與require相比,這是語言級別的事情,而不是文件級別的事情。include方法是使用其他模塊(通常稱為混合)“擴展”類的主要方法。例如,如果您的類定義了方法“ each”,則可以包括mixin模塊Enumerable,并且它可以充當集合。由于include動詞在其他語言中的用法非常不同,因此可能會造成混淆。


資源


因此,如果您只想使用模塊,而不是擴展它或進行混入,那么您將要使用require。


奇怪的是,Ruby的require類似于C中的include,而Ruby的include是幾乎沒有像C的include。


查看完整回答
反對 回復 2019-09-27
?
當年話下

TA貢獻1890條經驗 獲得超9個贊

從元編程Ruby書中,


該require()方法與十分相似load(),但是其目的不同。您用于load()執行代碼,并 require()用于導入庫。


查看完整回答
反對 回復 2019-09-27
?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

如果使用模塊,則意味著將所有方法都帶入類中。如果您extend使用帶有模塊的類,則意味著您將“引入”模塊的方法作為類方法。如果您include使用模塊類,則意味著您將“引入”模塊的方法作為實例方法。


EX:


 module A

   def say

     puts "this is module A"

   end

 end


 class B

   include A

 end


 class C

   extend A

 end

B.say => B:Class的未定義方法“ say”


B.new.say =>這是模塊A


C.say =>這是模塊A


C.new.say => C:Class的未定義方法“ say”


查看完整回答
反對 回復 2019-09-27
  • 3 回答
  • 0 關注
  • 1141 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號