最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Ruby中require、load、include、extend的區(qū)別介紹

 更新時(shí)間:2015年05月23日 09:25:38   投稿:junjie  
這篇文章主要介紹了Ruby中require、load、include、extend的區(qū)別介紹,require、load用于文件,如.rb等等結(jié)尾的文件,include、load則用于包含一個(gè)文件中的模塊,需要的朋友可以參考下

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

1、require:加載一個(gè)庫,并且只加載一次,如果多次加載會(huì)返回false。只有當(dāng)要加載的庫位于一個(gè)分離的文件中時(shí)才有必要使用require。使用時(shí)不需要加擴(kuò)展名,一般放在文件的最前面:

復(fù)制代碼 代碼如下:

require ‘test_library'

2、load:
load用來多次加載一個(gè)庫,必須指定擴(kuò)展名:
復(fù)制代碼 代碼如下:

load ‘test_library.rb'

3、extend:在定義類時(shí)使用,把module的實(shí)例方法作為當(dāng)前類的類方法.
復(fù)制代碼 代碼如下:

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è)對象。如果你改變了module的定義,即使你的程序還在運(yùn)行,所有包含module的類都會(huì)改變行為。
復(fù)制代碼 代碼如下:

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)文章

最新評論

双峰县| 湘阴县| 惠东县| 曲水县| 吉木乃县| 台安县| 安达市| 余江县| 金坛市| 商南县| 玉林市| 新干县| 马龙县| 大冶市| 无锡市| 神木县| 孟津县| 东城区| 盐源县| 津南区| 德阳市| 抚顺市| 鄂伦春自治旗| 达州市| 景泰县| 阳信县| 沈阳市| 龙口市| 佛冈县| 探索| 海南省| 越西县| 正安县| 道真| 桃源县| 东兴市| 新营市| 兴安盟| 晋城| 光泽县| 武冈市|