我正在寻找的行为是这样我可以定义方法来获得这样的结果:
> 2i
=> Complex(0,+2i)
> 2²
=> 4
答案 0 :(得分:5)
对于第一个,您可以将自定义实例方法添加到Fixnum
,如下所示:
class Fixnum
def i
Complex(0, self)
end
end
> 2.i
# => (0+2i)
正如J-L指出的那样,你可以对Ruby 1.9中的第二个做同样的事情,尽管你的rb文件在顶部需要# encoding: utf-8
。
正如DNNX指出的那样,在Complex
类中已经解决了在Ruby中创建虚数的问题:
require 'complex'
2.im
#=> (0+2i)