Ruby中require、load、include、extend的區(qū)別介紹
require,load用于文件,如.rb等等結(jié)尾的文件。include,load則用于包含一個(gè)文件中的模塊。
require 一般情況下用于加載庫(kù)文件,而load則用于加載配置文件。
1、require:加載一個(gè)庫(kù),并且只加載一次,如果多次加載會(huì)返回false。只有當(dāng)要加載的庫(kù)位于一個(gè)分離的文件中時(shí)才有必要使用require。使用時(shí)不需要加擴(kuò)展名,一般放在文件的最前面:
require ‘test_library'
2、load:
load用來(lái)多次加載一個(gè)庫(kù),必須指定擴(kuò)展名:
load ‘test_library.rb'
3、extend:在定義類時(shí)使用,把module的實(shí)例方法作為當(dāng)前類的類方法.
module Test
def class_type
"This class is of type:#{self.class}"
end
end
class TestClass
extend Test
end
puts TestClass.class_type #=> This class is of type:Class
4、include:在定義類時(shí)使用,把module的實(shí)例方法作為當(dāng)前類的實(shí)例方法. 把module的變量作為當(dāng)前類的類變量.
include并不會(huì)把module的實(shí)例方法拷貝到類中,只是做了引用,包含module的不同類都指向了同一個(gè)對(duì)象。如果你改變了module的定義,即使你的程序還在運(yùn)行,所有包含module的類都會(huì)改變行為。
module Test
@a = 1
def class_type
"This class is of type:#{self.class}"
end
end
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
相關(guān)文章
Linux下Redis數(shù)據(jù)庫(kù)的安裝方法與自動(dòng)啟動(dòng)腳本分享
這篇文章主要介紹了Linux下Redis數(shù)據(jù)庫(kù)的安裝方法與自動(dòng)啟動(dòng)腳本分享,自動(dòng)啟動(dòng)腳本分別針對(duì)CentOS和Ubuntu系統(tǒng)來(lái)給出了編寫(xiě)示例,需要的朋友可以參考下2016-05-05CentOS7下搭建ruby on rails開(kāi)發(fā)環(huán)境
聽(tīng)說(shuō)rails是一個(gè)比較流行的快速開(kāi)發(fā)框架,對(duì)于我這個(gè)web不熟悉的人來(lái)說(shuō),那是極好的!可以快速上手,又能真正了解服務(wù)器端的各種,所以rails搞起來(lái)。不過(guò)一個(gè)完整的開(kāi)發(fā)環(huán)境搭建過(guò)程完成后,真的只能用各種坑來(lái)形容~2016-02-02Ruby中的Proc類及Proc的類方法Proc.new的使用解析
用Proc類可以用Proc.new來(lái)創(chuàng)建一個(gè)Proc類,進(jìn)而來(lái)操作塊,這里我們就來(lái)進(jìn)行Ruby中的Proc類及Proc的類方法Proc.new的使用解析.2016-05-05mac os gem安裝json出現(xiàn)error failed的解決辦法
這篇文章主要介紹了mac os gem安裝json出現(xiàn)error failed的解決辦法,系統(tǒng)是mac os Mavericks,失敗提示Failed to build gem native extension,需要的朋友可以參考下2014-06-06Ruby中嵌套對(duì)象轉(zhuǎn)換成json的方法
這篇文章主要介紹了Ruby中嵌套對(duì)象轉(zhuǎn)換成json的方法,同時(shí)介紹了普通對(duì)象to_json的方法,需要的朋友可以參考下2014-06-06Ruby中require、load、include、extend的區(qū)別介紹
這篇文章主要介紹了Ruby中require、load、include、extend的區(qū)別介紹,require、load用于文件,如.rb等等結(jié)尾的文件,include、load則用于包含一個(gè)文件中的模塊,需要的朋友可以參考下2015-05-05ruby寫(xiě)掃描當(dāng)前網(wǎng)頁(yè)所有url的腳本
用ruby寫(xiě)的掃描當(dāng)前網(wǎng)頁(yè)所有url的腳本,對(duì)于學(xué)習(xí)ruby的朋友是個(gè)不錯(cuò)的實(shí)例2008-06-06