网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

ruby编程API阅读之BasicObject阅读

BasicObject是ruby中所有类的父类。

成都创新互联公司长期为近1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为宽甸企业提供专业的成都网站设计、成都做网站,宽甸网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。

一、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

网站栏目:ruby编程API阅读之BasicObject阅读
网页URL:http://bjjierui.cn/article/jcopgj.html

其他资讯