當我們在寫函數的時候有一個以上的類并且需要函數時,你可以在模塊中定義函數并包含它,本文重點講述Ruby中require、load、include、extend的區別,一起來看看吧!
1、require:加載一個庫,并且只加載一次,如果多次加載會返回false。只有當要加載的庫位于一個分離的文件中時才有必要使用require。使用時不需要加擴展名,一般放在文件的最前面:
2、load:
load用來多次加載一個庫,必須指定擴展名:
?
?
3、extend:在定義類時使用,把module的實例方法作為當前類的類方法.
?
?
?
class TestClass
?extend Test
end
puts TestClass.class_type? #=>? This class is of type:Class
4、include:在定義類時使用,把module的實例方法作為當前類的實例方法. 把module的變量作為當前類的類變量.
include并不會把module的實例方法拷貝到類中,只是做了引用,包含module的不同類都指向了同一個對象。如果你改變了module的定義,即使你的程序還在運行,所有包含module的類都會改變行為。
?
?
?
class TestClass
?include Test
end
# puts TestClass.class_type? #=> undefined method `class_type' for TestClass:Class (NoMethodError)
puts TestClass.new.class_type? #=> This class is of type:TestClass
以上就是我們為各位朋友們介紹的Ruby中require、load、include、extend的區別。看完上面的內容之后,是不是覺得在工作中是非常實用的。
新聞熱點
疑難解答
圖片精選