加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby和为Float实例修改self

发布时间:2020-12-16 19:21:35 所属栏目:百科 来源:网络整理
导读:我想改变float实例的自身值. 我有以下方法: class Float def round_by(precision) (self * 10 ** precision).round.to_f / 10 ** precision endend 我想添加round_by!将修改自我值的方法. class Float def round_by!(precision) self = self.round_by(prec
我想改变float实例的自身值.

我有以下方法:

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.但是在这种情况下,这对你没有帮助,因为Float没有任何变异方法,并且设置实例变量不会给你任何东西,因为任何实例变量都不会影响任何默认的float操作.

所以底线是:你不能在浮点数上写变异方法,至少不是你想要的方式.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读