国产探花免费观看_亚洲丰满少妇自慰呻吟_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的區別??赐晟厦娴膬热葜?,是不是覺得在工作中是非常實用的。

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

圖片精選

主站蜘蛛池模板: 徐州市| 桐梓县| 共和县| 蒲江县| 安多县| 任丘市| 大足县| 桐城市| 呈贡县| 旌德县| 湛江市| 张家川| 遵义市| 遵义县| 平阴县| 淮滨县| 泗水县| 大姚县| 安康市| 洛隆县| 渝北区| 安远县| 元朗区| 吉安县| 汕头市| 广丰县| 新建县| 浙江省| 长汀县| 永德县| 弥勒县| 卓资县| 改则县| 漾濞| 翼城县| 北川| 崇明县| 花莲市| 南安市| 石棉县| 莫力|