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