查看: 2593|回复: 2

[已经解决] 请问如何给全局变量和实例变量设上下线?

[复制链接]
梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
回帖
659

开拓者

发表于 2017-7-13 15:21:24 | 显示全部楼层 |阅读模式

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

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

×
请问用attr_accessor定义的实例变量 以及 开头为$的全局变量 如何设定它们的上下限,让变量在用脚本增减的时候不超过设定值?

老鹰

梦石
40
星屑
37812
在线时间
7091 小时
注册时间
2012-5-26
回帖
3297

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

发表于 2017-7-13 15:55:00 | 显示全部楼层
本帖最后由 百里_飞柳 于 2017-7-13 16:00 编辑

用
  1. class A
  2.   def a
  3.     @a
  4.   end
  5.   def a=(value)
  6.     @a = value
  7.   end
  8. end
复制代码

代替省事的attr_accessor

这样你就可以在方法内部进行上下限处理了
注:带=号的方法,也会对 +=、-= 之类的进行处理
[pre lang="ruby"]t = A.new  # 假设@a初始化为 0
p t.a          # => 0
t.a += 3
p t.a          # => 3[/pre]

------------------------------------
还个全局变量啊,直接弄成module里面的变量,同样处理。

点评

没问题,不过要进行初始化,否则会报错。  发表于 2017-7-13 18:02

评分

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

查看全部评分

回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部