中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ruby編程API閱讀之BasicObject閱讀

發布時間:2020-07-24 19:29:07 來源:網絡 閱讀:461 作者:wqyzsh 欄目:編程語言

BasicObject是ruby中所有類的父類。

一、BasicObject提供的實例方法

        BasicObject提供的方法較少,我在文章中只記錄一些要點。

        1. == 與eql?同為BasicObject提供的實例方法,但用法上稍有不同。

     1 == 1.0     #=> true
     1.eql? 1.0   #=> false

        2. send方法,下面為send方法的例子。

     class Klass
         def hello(*args)    
             "Hello " + args.join(' ')  
         end
     end
     k = Klass.new
     k.send :hello, "gentle", "readers"   #=> "Hello gentle readers"

          send為ruby中的實例提供了動態調用方法的可能,實在是元編程的利器。

        3. instance_eval && instance_exc

           這兩個方法的作用都是將對象的作用域撕開,將方法后所跟的塊的self變成對象的上下文環境。所不同的是instance_exc可以向塊內傳遞參數。

二、 BasicObject提供的私有方法

        1. method_missing方法

             method_missing方法被用來處理對象調用方法不存在時的情況,如果在對象類中覆寫method_missing,那么可以達到意想不到的效果。使用起來較難。

        2.singleton_method_added方法

            當一個單例方法添加到一個接受者之后,singleton_methdo_added方法會被當作反饋被調用。            

     module Chatty
       def Chatty.singleton_method_added(id)   
           puts "Adding #{id.id2name}"
       end
      def self.one()     
      end
      def two()          
      end
      def Chatty.three() 
      end
     end
     
     ###Adding singleton_method_added
     ##Adding one
     Adding three

      下面還有singleton_method_removed 和 singleton_method_undefined 方法,和本方法用法相同。我們可以通過示例代碼體會一下class << self ....  end 的用法。

   module Chatty
     def Chatty.singleton_method_removed(id)    
         puts "Removing #{id.id2name}"
     end
     def self.one()     end
     def two()          end
     def Chatty.three() end
     class << self
        remove_method :three
        remove_method :one
     end
   end


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

隆化县| 五台县| 荣成市| 齐河县| 彭泽县| 浦县| 澄江县| 大厂| 锦屏县| 民权县| 淄博市| 密山市| 社会| 成都市| 巩义市| 无极县| 夏邑县| 龙胜| 东乌珠穆沁旗| 织金县| 张掖市| 海伦市| 金平| 天长市| 卫辉市| 犍为县| 榕江县| 新晃| 伊宁市| 通州区| 安泽县| 新宾| 石屏县| 宁乡县| 长宁区| 托克托县| 石河子市| 周至县| 泰安市| 呼玛县| 工布江达县|