3 回答

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。

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”
- 3 回答
- 0 關注
- 1141 瀏覽
添加回答
舉報