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

首頁 > 學院 > 開發設計 > 正文

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

2019-10-26 19:27:04
字體:
來源:轉載
供稿:網友

require,load用于文件,如.rb等等結尾的文件。include,load則用于包含一個文件中的模塊。
require 一般情況下用于加載庫文件,而load則用于加載配置文件。

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乐安县| 广州市| 仙游县| 鹤岗市| 新平| 宿州市| 五华县| 志丹县| 兴和县| 宜君县| 应城市| 林芝县| 都安| 古交市| 阿尔山市| 肥东县| 察哈| 黄浦区| 德昌县| 舞钢市| 苗栗县| 井冈山市| 阿拉尔市| 临猗县| 舟山市| 洛扎县| 白沙| 临潭县| 泾川县| 屏东县| 顺义区| 新乐市| 北川| 旬阳县| 子洲县| 公主岭市| 台湾省| 武安市| 平利县| 富顺县| 滕州市|