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

Project1

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

[已经解决] 请问有没有办法让没有创建的变量在判断 != nil时返回false?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
帖子
813

开拓者

跳转到指定楼层
1
发表于 2018-5-6 16:32:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 jianyulei 于 2018-5-6 16:37 编辑

例如变量aaa的赋值我写在分歧里面,之后我若要使用aaa就需要事先判断aaa是否在分歧中被赋值,但是当我判断aaa != nil 时会发生报错,但是判断aaa==nil 却正常,最奇怪的是我事先aaa=nil后却可以判断aaa != nil,请问有没有办法让我使用 != nil 来判断变量是否存在时如果没有创建该变量则直接返回false呢?

Lv5.捕梦者

梦石
0
星屑
33439
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

2
发表于 2018-5-6 17:53:51 | 只看该作者
用类变量,直接 if @aaa

点评

原来是这样啊,那尽可能的多用类变量好了  发表于 2018-5-7 00:43
你用局部变量,未赋值的话,会首先默认是一个函数来运行它。然而这个函数根本没有,就报找不到 method 的错误。  发表于 2018-5-6 20:29
习惯的问题吧,局部变量的话不需要手动清空,也不需要担心重复……  发表于 2018-5-6 19:34

评分

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

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

3
发表于 2018-5-6 18:14:25 | 只看该作者
aaa 是局部变量,你没赋值它不是肯定不存在吗……

点评

我就是想要用分歧判断他不存在,aaa != nil 理所当然应该返回false才对,但是报错我不就不能接着写下去了吗  发表于 2018-5-6 19:27
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

4
发表于 2018-5-6 20:30:18 | 只看该作者
但是你的写法也并不能用来判断 aaa 不存在啊
像下面这段代码,aaa 虽然不存在,但是 aaa != nil
  1. def aaa
  2. 123
  3. end
  4. aaa != nil #=> true
复制代码

点评

我想我自己都弄混了,其实我只是想知道如何去判断一个变量是否已经被创建。  发表于 2018-5-6 20:55

评分

参与人数 1+1 收起 理由
0newing + 1 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

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

另外你题目描述里的“aaa没赋值,aaa == nil是正常的”这句话同样也是错误的,只要 aaa 没赋值,不管你判断 aaa != nil 还是 aaa == nil 都是会报错的

点评

真的可以,这怎么说,汗("▔㉨▔)汗   发表于 2018-5-6 21:21
这样可以?  发表于 2018-5-6 21:20
我试了下,原来是只有aaa = 0 if aaa == nil 可以用  发表于 2018-5-6 20:49

评分

参与人数 2星屑 +50 +1 收起 理由
VIPArcher + 50 我很赞同
jianyulei + 1 精品文章

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36402
在线时间
10791 小时
注册时间
2009-3-15
帖子
4813
6
发表于 2018-5-6 20:55:04 | 只看该作者
本帖最后由 soulsaga 于 2018-5-6 20:58 编辑

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

评分

参与人数 1+1 收起 理由
jianyulei + 1 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 06:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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