在Ruby中替换引用的Integer值,如String#replace

Pav*_* K. 2 ruby pointers reference

我有以下代码:

def mymethod(a)
  a.replace("a")
end

mystring = "b"

mymethod(mystring) 

p mystring # => "a"
Run Code Online (Sandbox Code Playgroud)

但我想用Integer执行相同的操作

那可能吗?

Ser*_*sev 7

简答:不.

答案很长:不,这是不可能的.Integer是一个类型原语,足以不具有状态(和状态修改操作).整数上的每个操作都会生成一个新整数.

可能,如果您下降到C级别,您可以就地修改基础值.但我不确定.无论如何,这似乎是一种矫枉过正和错误的事情.