Ruby Singleton methods 4种实现---孔乙己所说的茴字到底有几种写法


1.9.2p290 :061 >   foobar=[]
 => [] 
1.9.2p290 :062 > foobar.singleton_methods
 => [] 
1.9.2p290 :063 > foobar.instance_eval <<EOT
1.9.2p290 :064"> def foo1;"hello";end
1.9.2p290 :065"> EOT
 => nil 
1.9.2p290 :066 > foobar.singleton_methods
 => [:foo1] 
1.9.2p290 :067 > def foobar.foo2;"hello";end
 => nil 
1.9.2p290 :068 > foobar.singleton_methods
 => [:foo1, :foo2] 
1.9.2p290 :069 > class << foobar
1.9.2p290 :070?>   def foo3;"hello";end
1.9.2p290 :071?>   end
 => nil 
1.9.2p290 :072 > foobar.singleton_methods
 => [:foo1, :foo2, :foo3] 
1.9.2p290 :073 > module Foo
1.9.2p290 :074?>   def foo4;"hello";end
1.9.2p290 :075?>   end
 => nil 
1.9.2p290 :076 > foobar.extend(Foo)
 => [] 
1.9.2p290 :077 > foobar.singleton_methods
 => [:foo1, :foo2, :foo3, :foo4] 
1.9.2p290 :078 >


Understanding Ruby Singleton Classes


1.9.2p290 :001 > class Foo
1.9.2p290 :002?>   class << self
1.9.2p290 :003?>     def hi;"hi";end
1.9.2p290 :004?>     def bye;"bye";end
1.9.2p290 :005?>     end
1.9.2p290 :006?>   end
 => nil 
1.9.2p290 :007 > Foo.singleton_methods
 => [:hi, :bye]
http://khelll.com/blog/ruby/ruby-reflection/


转载于:https://my.oschina.net/cnyang/blog/85277

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值