ruby 运算符表达式

       Ruby  提供了基本的运算符集(如+, -, *, / 等等) ,也提供了及格独特的运算符.

       实际上,Ruby 中的许多运算符是由方法调用来实现的, 例如, 当你执行 a*b+c时,实际上你是请求 a 对象执行方法 * ,传入参数是 b ,然后请求返回的结果对象执行 + 方法 , 传入的参数是 c ,这等价于:

(a.*(b)).+(c) 

       因为任何东西都是对象, 而且你可以重新定义实例方法, 所以你可以重新定义任何不满足你需求的基本算术方法.

       

class Fixnum 
        alias old_plus + 
        
        def + (other)
            old_plus(other).succ
         end
end
       

 1 + 2             -> 4

 a = 3             -> 

 a += 4           -> 8

 a + a + a       ->26

       更有用的是, 你写的类可以像内建对象那样参与到运算符表达式中. 比如, 你可能想从歌曲中间剪辑一段, 这可以用搜索操作来实现.

猜你喜欢

转载自994800477.iteye.com/blog/2229845