国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Ruby > 正文

Ruby中require、load、include、extend的區別

2020-02-24 15:38:47
字體:
來源:轉載
供稿:網友

當我們在寫函數的時候有一個以上的類并且需要函數時,你可以在模塊中定義函數并包含它,本文重點講述Ruby中require、load、include、extend的區別,一起來看看吧!

1、require:加載一個庫,并且只加載一次,如果多次加載會返回false。只有當要加載的庫位于一個分離的文件中時才有必要使用require。使用時不需要加擴展名,一般放在文件的最前面:

復制代碼 代碼如下:

require ‘test_library'


2、load:
load用來多次加載一個庫,必須指定擴展名:

?

復制代碼 代碼如下:

?


load ‘test_library.rb'


3、extend:在定義類時使用,把module的實例方法作為當前類的類方法.

?

復制代碼 代碼如下:

?


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:在定義類時使用,把module的實例方法作為當前類的實例方法. 把module的變量作為當前類的類變量.
include并不會把module的實例方法拷貝到類中,只是做了引用,包含module的不同類都指向了同一個對象。如果你改變了module的定義,即使你的程序還在運行,所有包含module的類都會改變行為。

?

復制代碼 代碼如下:

?


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

以上就是我們為各位朋友們介紹的Ruby中require、load、include、extend的區別??赐晟厦娴膬热葜?,是不是覺得在工作中是非常實用的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 麻城市| 分宜县| 若尔盖县| 会宁县| 武夷山市| 镇江市| 镇远县| 介休市| 东乌珠穆沁旗| 九龙县| 溆浦县| 康定县| 平果县| 景谷| 苏州市| 秭归县| 定安县| 威远县| 屯昌县| 沈阳市| 凤山县| 兰西县| 长治市| 寻甸| 五寨县| 通海县| 含山县| 威信县| 香格里拉县| 湖南省| 个旧市| 历史| 扎鲁特旗| 承德县| 五台县| 中西区| 临桂县| 渑池县| 柳林县| 中江县| 泉州市|