Project1

标题: 请问有没有办法让没有创建的变量在判断 != nil时返回false? [打印本页]

作者: jianyulei    时间: 2018-5-6 16:32
标题: 请问有没有办法让没有创建的变量在判断 != nil时返回false?
本帖最后由 jianyulei 于 2018-5-6 16:37 编辑

例如变量aaa的赋值我写在分歧里面,之后我若要使用aaa就需要事先判断aaa是否在分歧中被赋值,但是当我判断aaa != nil 时会发生报错,但是判断aaa==nil 却正常,最奇怪的是我事先aaa=nil后却可以判断aaa != nil,请问有没有办法让我使用 != nil 来判断变量是否存在时如果没有创建该变量则直接返回false呢?
作者: 芯☆淡茹水    时间: 2018-5-6 17:53
用类变量,直接 if @aaa
作者: 喵呜喵5    时间: 2018-5-6 18:14
aaa 是局部变量,你没赋值它不是肯定不存在吗……
作者: 喵呜喵5    时间: 2018-5-6 20:30
但是你的写法也并不能用来判断 aaa 不存在啊
像下面这段代码,aaa 虽然不存在,但是 aaa != nil
  1. def aaa
  2. 123
  3. end
  4. aaa != nil #=> true
复制代码

作者: 喵呜喵5    时间: 2018-5-6 20:43
更简单粗暴的一件事是:
即使你的aaa 没有写在条件分歧里,因为 aaa 是局部变量,即使它们在同一个事件页,只要不在一个指令中你也是获取不到 aaa 的,因为执行完指令后上一个指令的 aaa 已经不存在了

另外你题目描述里的“aaa没赋值,aaa == nil是正常的”这句话同样也是错误的,只要 aaa 没赋值,不管你判断 aaa != nil 还是 aaa == nil 都是会报错的
作者: soulsaga    时间: 2018-5-6 20:55
本帖最后由 soulsaga 于 2018-5-6 20:58 编辑

respond_to?
这个语句有什么用?
这样?if respond_to?("aaa")




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