是否可以告诉ruby在某些情况下接受左手变量?

时间:2011-05-07 23:12:47

标签: ruby

我正在寻找的行为是这样我可以定义方法来获得这样的结果:

> 2i
=> Complex(0,+2i)
> 2²
=> 4

1 个答案:

答案 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)