首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Ruby中修改复数的实部或虚部?

如何在Ruby中修改复数的实部或虚部?
EN

Stack Overflow用户
提问于 2012-10-31 16:19:54
回答 4查看 239关注 0票数 0

我不习惯用Ruby编写复杂的类。我读了doc,但我不知道如何修改这样一个复数的实部或虚部。未提供用于修改这些字段的访问器。

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

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

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-10-31 16:27:27

你必须创建一个新的复数:

代码语言:javascript
复制
c = Complex(1, 2)
c = Complex(2, c.imag)
票数 1
EN

Stack Overflow用户

发布于 2012-10-31 16:30:58

代码语言:javascript
复制
c = Complex(4, c.imaginary)

如果你做一个

代码语言:javascript
复制
c.methods - 1.methods  # => [:marshal_dump, :marshal_load]

你可以看到复数有哪些方法是普通整数没有的,这是唯一的两个,它们显然不会让你设置实数部分,这意味着你不能只创建一个新的。当然,您可以通过对其执行算术运算来更改数字,但如果您希望显式设置实数部分,则重新赋值变量是唯一的方法。

票数 2
EN

Stack Overflow用户

发布于 2012-10-31 16:25:57

您不能修改该数字,但您可以基于它创建一个新的数字,并将结果赋给同一个变量:

代码语言:javascript
复制
c = Complex(1, 2)
c = Complex(4, c.imaginary)
c            # => (4+2i)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13153780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档