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
def aaa
123
end
aaa != nil #=> true
复制代码
作者:
喵呜喵5
时间:
2018-5-6 20:43
更简单粗暴的一件事是:
即使你的aaa 没有写在条件分歧里,因为 aaa 是局部变量,即使它们在同一个事件页,只要不在一个指令中你也是获取不到 aaa 的,因为执行完指令后上一个指令的 aaa 已经不存在了
无标题.png
(3.06 KB, 下载次数: 29)
下载附件
保存到相册
2018-5-6 20:40 上传
另外你题目描述里的“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