我有以下代碼:在Ruby中更換引用的整數值如String#替換不
def mymethod(a)
a.replace("a")
end
mystring = "b"
mymethod(mystring)
p mystring # => "a"
,但我想用整數
執行相同的是,可能嗎?
我有以下代碼:在Ruby中更換引用的整數值如String#替換不
def mymethod(a)
a.replace("a")
end
mystring = "b"
mymethod(mystring)
p mystring # => "a"
,但我想用整數
執行相同的是,可能嗎?
簡答:沒有。
長答案:不,這是不可能的。整數是一種足夠原始的類型,不具有狀態(和狀態修改操作)。整數上的每個操作都會生成一個新整數。
也許,如果你下拉到C級,你可以能夠就地修改潛在價值。但我不確定。無論如何,這似乎是一個矯枉過正和錯誤的事情。
-1「錯誤的事情」。這可能是一個完全合理的問題 - 我現在需要這樣做:多個對象需要一個共享計數器。
在我看來,最好的方法是創建一個包裝類和具有整數作爲一個實例變量:
class Counter
def initialize(i = 0)
@i = i
end
def get
@i
end
def set(i)
@i = i
end
def inc(delta = 1)
@i += delta
end
end
+1「一個錯誤的做法」。 –