gpt4 book ai didi

Ruby 并为 Float 实例修改自身

转载 作者:数据小太阳 更新时间:2023-10-29 06:53:21 25 4
gpt4 key购买 nike

我想更改 float 实例的 self 值。

我有以下方法:

class Float
def round_by(precision)
(self * 10 ** precision).round.to_f / 10 ** precision
end
end

我想添加 round_by!修改自身值的方法。

class Float
def round_by!(precision)
self = self.round_by(precision)
end
end

但是我得到一个错误,说我不能改变 self 的值。

有什么想法吗?

最佳答案

您不能更改self 的值。它总是指向当前对象,你不能让它指向别的东西。

当你想改变一个对象的值时,你可以通过调用其他改变方法或者设置或改变实例变量的值来实现,而不是通过尝试重新分配self。但是在这种情况下,这对您没有帮助,因为 Float 没有任何变异方法,并且设置实例变量不会给您带来任何好处,因为默认的 float 操作都不受任何实例变量。

所以底线是:你不能在 float 上编写变异方法,至少不能以你想要的方式。

关于Ruby 并为 Float 实例修改自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4640661/

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