我不习惯在Ruby中复杂类。我阅读了文档,但我无法弄清楚如何修改如此复杂的数字的真实或虚构部分。未提供修改这些字段的登录器。
c =复杂(1,2)c.real = 4#不可能,
所以我的问题是:如何修改Ruby中复杂数字的真实或虚构部分?
i特别认为基于开放类的解决方案应该是可能的吗?
c = Complex(4, c.imaginary)
如果您做
c.methods - 1.methods # => [:marshal_dump, :marshal_load]
您可以查看一个复杂数字具有哪些方法,而普通整数则没有。这些是唯一的两个,显然不会让您设置真实的部分,这意味着除了创建新的部分外,您根本无法做到这一点。当然,您可以通过对其进行算术操作来更改数字,但是如果要明确设置实际部分,重新分配变量是唯一的方法。
您将必须创建一个新的复杂号码:
c = Complex(1, 2)
c = Complex(2, c.imag)
您无法修改数字,但是您可以基于它创建新数,并将结果分配给同一变量:
c = Complex(1, 2)
c = Complex(4, c.imaginary)
c # => (4+2i)
这是一个示例:
c = Complex(2, 3)
# incrementing the real part:
c + 2
=> (4+3i)
# incrementing the imaginary part:
c + Complex(0,2)
=> (2, 5i)