我不习惯用Ruby编写复杂的类。我读了doc,但我不知道如何修改这样一个复数的实部或虚部。未提供用于修改这些字段的访问器。
c=Complex(1,2) c.real= 4#原样不可能
所以我的问题是:如何在Ruby中修改复数的实部或虚部?
我特别认为基于开放类的解决方案应该是可能的?
发布于 2012-10-31 16:27:27
你必须创建一个新的复数:
c = Complex(1, 2)
c = Complex(2, c.imag)发布于 2012-10-31 16:30:58
c = Complex(4, c.imaginary)如果你做一个
c.methods - 1.methods # => [:marshal_dump, :marshal_load]你可以看到复数有哪些方法是普通整数没有的,这是唯一的两个,它们显然不会让你设置实数部分,这意味着你不能只创建一个新的。当然,您可以通过对其执行算术运算来更改数字,但如果您希望显式设置实数部分,则重新赋值变量是唯一的方法。
发布于 2012-10-31 16:25:57
您不能修改该数字,但您可以基于它创建一个新的数字,并将结果赋给同一个变量:
c = Complex(1, 2)
c = Complex(4, c.imaginary)
c # => (4+2i)https://stackoverflow.com/questions/13153780
复制相似问题