程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> Ruby中require、load、include、extend的區別介紹

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

編輯:更多關於編程

       這篇文章主要介紹了Ruby中require、load、include、extend的區別介紹,require、load用於文件,如.rb等等結尾的文件,include、load則用於包含一個文件中的模塊,需要的朋友可以參考下

      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

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved