我不習慣Ruby中的複雜類。我讀了doc,但我不知道如何修改這樣一個複數的實數或虛數部分。沒有提供修改這些字段的訪問器。如何在Ruby中修改複數的實部或虛部?
C =複合物(1,2) c.real = 4#不可能的,因爲是
我的問題是:如何修改在紅寶石複數的實部或虛部?
我特別認爲基於open class的解決方案應該是可行的嗎?
我不習慣Ruby中的複雜類。我讀了doc,但我不知道如何修改這樣一個複數的實數或虛數部分。沒有提供修改這些字段的訪問器。如何在Ruby中修改複數的實部或虛部?
C =複合物(1,2) c.real = 4#不可能的,因爲是
我的問題是:如何修改在紅寶石複數的實部或虛部?
我特別認爲基於open class的解決方案應該是可行的嗎?
您必須創建一個新的複數:
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)
c = Complex(4, c.imaginary)
如果你做一個
c.methods - 1.methods # => [:marshal_dump, :marshal_load]
你可以看到一個複數有什麼樣的方法,其正常的整數沒有。這是唯一的兩個,他們顯然不會讓你設定真實的部分,這意味着你不能僅僅創建一個新的部分。您當然可以通過對其進行算術運算來更改數字,但是如果您想顯式設置實部,則重新分配變量是唯一的方法。
您可以隨時創建一個新的複數。 –