0

我不习惯 Ruby 中的 Complex 类。我阅读了文档,但我不知道如何修改这样一个复数的实部或虚部。未提供修改这些字段的访问器。

c=Complex(1,2) c.real= 4 # 不可能

所以我的问题是:如何在 Ruby 中修改复数的实部或虚部?

我特别认为基于公开课的解决方案应该是可能的?

4

4 回答 4

2
c = Complex(4, c.imaginary)

如果你做一个

c.methods - 1.methods  # => [:marshal_dump, :marshal_load]

你可以看到复数有哪些普通整数没有的方法。只有这两个,它们显然不会让你设置真实的部分,这意味着除了创建一个新的部分之外你根本无法做到这一点。您当然可以通过对其进行算术运算来更改数字,但如果您想显式设置实部,重新分配变量是唯一的方法。

于 2012-10-31T08:30:57.527 回答
1

您不能修改数字,但您可以基于它创建新的数字并将结果分配给相同的变量:

c = Complex(1, 2)
c = Complex(4, c.imaginary)
c            # => (4+2i)
于 2012-10-31T08:25:56.603 回答
1

您将不得不创建一个新的复数:

c = Complex(1, 2)
c = Complex(2, c.imag)
于 2012-10-31T08:27:27.430 回答
1

这是一个例子:

c = Complex(2, 3)
# incrementing the real part:
c + 2
=> (4+3i)

# incrementing the imaginary part:
c + Complex(0,2)
=> (2, 5i)
于 2012-10-31T08:30:03.907 回答