我想更改浮点实例的自身值。
我有以下方法:
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
。然而在这种情况下,这对你没有帮助,因为Float
没有任何变异方法,并且设置实例变量不会给你带来任何好处,因为默认的浮点操作都不受任何实例变量的影响。
所以底线是:你不能在浮点数上编写变异方法,至少不能以你想要的方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)