让我们说:
n = 5
n.to_s
p n
n
的结果仍为5
而不是"5"
。使用我新转换的n
替换原始变量n
的最短方法是什么,而不必执行以下操作:
n = 5
a = n.to_s
p a
为什么Ruby不允许我在对象上调用to_s!
?
答案 0 :(得分:8)
整数不能神奇地将自己变成一个String。方法(包括!
方法)只能导致对象值更改,而不是类型。此外,整数是不可变的 - 整数本身不能被修改(但指向它的名称可以重新指向一个新的整数)。
因此,to_s!
不存在,而是需要通过编写例如重新绑定变量。
n = n.to_s