Project1

标题: 请教如何保证一个实例变量始值终不会降低(-=始终无效) [打印本页]

作者: taeckle    时间: 2023-5-3 06:54
标题: 请教如何保证一个实例变量始值终不会降低(-=始终无效)
大家好,

请问下如何保证一个实例变量值从创建后就不会被降低(也就是运算符-=对其不起作用)呢?

我是这么写的,结果不起作用还报错 :
  1. def bianliang-=(num=0)
  2. return
  3. end
复制代码

作者: 金芒芒    时间: 2023-5-3 08:12
为什么不加条件分歧呢?非要给系统出没有的公式呢

作者: soulsaga    时间: 2023-5-3 09:54
本帖最后由 soulsaga 于 2023-5-4 10:19 编辑

不能用-=              
RUBY 代码复制
  1. def bianliang;return [@bianliang,100].max;end


这样不行呢..如果用乘或除都一样降不了
作者: Istrien    时间: 2023-5-4 00:47
  1. def bianliang=(num)
  2.   @bianliang=[@bianliang, num].max
  3. end
复制代码


bianliang-= 不是一个方法名。
a -= 1 只是 a = a - 1 的简写,
所以还是要回到 bianliang= 这个方法里面重写的。
作者: enghao_lim    时间: 2023-5-4 14:20
关键词 getter, setter
  1. class A
  2.     def initialize(kk)
  3.         @haha = kk;
  4.     end
  5.    
  6.     def haha
  7.         return @haha
  8.     end
  9.    
  10.     def haha=(value)
  11.         return
  12.     end
  13.    
  14. end

  15. $a = A.new(20)
  16. puts $a.haha
  17. $a.haha = 10
  18. puts $a.haha
  19. $a.haha /= 10
  20. puts $a.haha
复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1