设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1020|回复: 5
打印 上一主题 下一主题

[已经解决] 请教如何保证一个实例变量始值终不会降低(-=始终无效)

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9163
在线时间
466 小时
注册时间
2015-5-8
帖子
866
跳转到指定楼层
1
发表于 2023-5-3 06:54:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
大家好,

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

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

Lv4.逐梦者

梦石
0
星屑
7827
在线时间
1346 小时
注册时间
2015-8-15
帖子
753
2
发表于 2023-5-3 08:12:29 | 只看该作者
为什么不加条件分歧呢?非要给系统出没有的公式呢
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36442
在线时间
10799 小时
注册时间
2009-3-15
帖子
4814
3
发表于 2023-5-3 09:54:05 | 只看该作者
本帖最后由 soulsaga 于 2023-5-4 10:19 编辑

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


这样不行呢..如果用乘或除都一样降不了
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8449
在线时间
773 小时
注册时间
2018-11-3
帖子
8
4
发表于 2023-5-4 00:47:34 | 只看该作者
  1. def bianliang=(num)
  2.   @bianliang=[@bianliang, num].max
  3. end
复制代码


bianliang-= 不是一个方法名。
a -= 1 只是 a = a - 1 的简写,
所以还是要回到 bianliang= 这个方法里面重写的。

点评

这才是正确答案!  发表于 2023-5-13 03:09

评分

参与人数 1星屑 +50 收起 理由
RyanBern + 50 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7981
在线时间
1183 小时
注册时间
2007-7-29
帖子
2055
5
发表于 2023-5-4 14:20:12 | 只看该作者
关键词 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
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-24 12:16

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表