论坛首页 入门技术论坛

我是个RUBY初学者,想问些简单的问题??

浏览 1630 次
该帖已经被评为新手帖
作者 正文
   发表时间:2006-11-14  
class Fixnum 
  alias oldPlus + 
  def +(other) 
    oldPlus(other).succ 
  end 
end 

1 + 2  » 4 
a = 3 
a += 4  » 8 



那位帮我解释一下啊?????
   发表时间:2006-11-14  
Fixnum是整数类型,如后面的1、2就是这个类型。
表达式1+2实际上调用了1的方法名为+的方法,传递的参数为2.
这样看:
1.add(2)
1.+(2)
1+2

上面的代码是重新定义了Fixnum的+方法,先将老的+方法实现重命名为oldPlus,然后在新的实现里,调用老的实现,并在其基础上再加一(succ方法就是自增一)

因此, 1+2得到的结果就是默认结果多1
a += 4 同理。
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics