gpt4 book ai didi

ruby - 为什么没有 `to_s` 的破坏性版本?

转载 作者:数据小太阳 更新时间:2023-10-29 08:20:30 24 4
gpt4 key购买 nike

让我们说:

n = 5
n.to_s
p n

n 的结果仍然是 5 而不是 "5"。将原始变量 n 替换为我新转换的 n 而无需执行以下操作的最短方法是什么:

n = 5
a = n.to_s
p a

为什么 Ruby 不允许我在对象上调用 to_s!

最佳答案

整数不能神奇地将自己变成字符串。方法(包括 ! 方法)只能导致对象值发生变化,而不能导致类型发生变化。此外,整数是不可变的——整数本身不能被修改(但指向它的名称可以重新指向一个新的整数)。

因此,to_s! 不存在,您需要通过编写例如重新绑定(bind)变量

n = n.to_s

关于ruby - 为什么没有 `to_s` 的破坏性版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18457390/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com