a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Ruby > 正文

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

2020-10-29 19:39:03
字體:
來源:轉載
供稿:網友

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日韩在线观看中文字幕 | 在线亚洲天堂 | 天天天天天天天天干 | 色呦呦免费观看 | www.日本三级 | 亚洲成人免费网址 | 色先锋影音 | 夜夜爽99久久国产综合精品女不卡 | 99re在线观看 | 国产视频网 | 青娱乐国产| 国产精品www| 久久精品福利视频 | 伊人网影院| 色婷婷网| 日本精品中文字幕 | 欧美日韩一区二区不卡 | 国产欧美一区二区精品婷 | 日韩在线国产 | 青娱乐av在线 | 欧美一区永久视频免费观看 | 97av超碰| 欧美日韩国产精品 | 国产综合区 | 亚洲婷婷一区二区三区 | 97久久精品午夜一区二区 | 国产精品久久久久久久久久三级 | 精品视频免费观看 | www久久精品 | 精品国内视频 | 日韩免费福利视频 | 欧美一区二区三 | 久久99欧美| 成人精品视频 | 黄色的网站免费看 | 国产亚洲一区二区精品 | 综合久久网 | 亚洲激情在线 | 国产黄色免费 | 成人一区二区三区 | 91在线视频福利 |