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

Project1

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

[已经过期] 脚本发生错误:undefined method 'side' for nil:nilclass!

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
207 小时
注册时间
2014-8-16
帖子
132
跳转到指定楼层
1
发表于 2015-5-26 15:52:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 a107480098 于 2015-5-26 15:56 编辑

我在测试游戏时有时会出现:脚本发生错误:undefined method 'side' for nil:nilclass!不知道这是怎么回事?求解!


不知道大家遇到过这样的问题吗?请大家讨论分析一下原因。

另外,我在网上查到了一些关于这个错误提示的资料:

1.jpg (17.67 KB, 下载次数: 13)

1.jpg

点评

nil 类没有 size 函数。  发表于 2015-5-26 15:58

Lv3.寻梦者

梦石
0
星屑
1743
在线时间
485 小时
注册时间
2006-1-7
帖子
1073
2
发表于 2015-5-26 16:45:56 | 只看该作者
在RM的RUBY里面,这个错误的意思是,
side 没有被赋值 ,又没有定义side没有赋值情况下该怎么办,从而引发的错误
简单点说
你让程序 显示 side 这个东西的值,但是你没有给side赋值,又没有告诉程序,side没有值的时候该怎么办
所以程序就懵了
鉴于你说 有时 会发生这个错误
你要想解决,就把脚本拿上来,或者上工程

点评

To guoxiaomi 多谢指正  发表于 2015-6-1 19:36
side是方法,不是变量。这里是因为nil对象调用了方法side引发的错误。  发表于 2015-6-1 14:00
初从文,三年不中;后习武,校场发一矢,中鼓吏,逐之出;遂学医,有所成。自撰一良方,服之,卒。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
207 小时
注册时间
2014-8-16
帖子
132
3
 楼主| 发表于 2015-5-26 19:12:18 | 只看该作者
本帖最后由 a107480098 于 2015-5-26 19:18 编辑
白鬼 发表于 2015-5-26 16:45
在RM的RUBY里面,这个错误的意思是,
side 没有被赋值 ,又没有定义side没有赋值情况下该怎么办,从而引发 ...


你的意思是有个size的值为空,没有给它定义一个值,是不是这个意思?望回复!如果是,从脚本编辑器里是否可以搜到这个未定义的size.

点评

是的,side 这个东西在默认脚本中没有定义。你就全域搜索side吧。知道怎么全域搜索不?ctrl+shift+F。看看是哪里,在没有给side赋值的时候就调用了  发表于 2015-5-26 19:17
回复 支持 反对

使用道具 举报

Lv5.捕梦者

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

开拓者

4
发表于 2015-5-26 20:12:43 | 只看该作者
undefined method 'size' for nil:NilClass!
没有在 nil (NilClass) 找到 'size' 的方法。
运算中代入的参数为 nil 了,检查并避免代入 nil 参数。
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
75
在线时间
241 小时
注册时间
2013-3-28
帖子
67
5
发表于 2015-5-26 21:17:34 | 只看该作者
事件/公共事件/战斗事件中加入的脚本对于nil调用了size方法
应该找你编辑事件页时加入的脚本里对size的调用,而不是去脚本编辑器里搜索size,找到之后再分析为什么会出现nil
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
207 小时
注册时间
2014-8-16
帖子
132
6
 楼主| 发表于 2015-5-26 21:56:57 | 只看该作者
芯☆淡茹水 发表于 2015-5-26 20:12
undefined method 'size' for nil:NilClass!
没有在 nil (NilClass) 找到 'size' 的方法。
运算中代入的 ...

能不能举个运算中代入的参数为 nil 了,检查并避免代入 nil 参数的例子,例如哪种情况下是正确的,哪种情况下又是错误的,谢谢!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
108
在线时间
1006 小时
注册时间
2008-11-9
帖子
1658
7
发表于 2015-5-26 22:20:11 | 只看该作者
脚本知识需要恶补了- -,例如这个范例:
RUBY 代码复制
  1. attr_reader   :a
  2.        if (false)
  3.                 @a = Array.new
  4.                 @a.push_back(1)
  5.         end
  6.         p @a.size

当然实际情况下不可能有人设定false这个脑残的条件
可是如果对一个未赋值的变量调用size当然会报错
也许你可以通过一点点小技巧来建立自纠错机制……比如把最后一句改为:
RUBY 代码复制
  1. if (@a == nil)
  2.                 p "这个变量是空的!"
  3.         else
  4.                 p @a.size
  5.         end

点评

好主意……我居然忘了还有这个分歧方式  发表于 2015-5-26 22:55
p (@a.nil? ? "这个变量是空的" : @a.size)  发表于 2015-5-26 22:52
回复 支持 反对

使用道具 举报

Lv5.捕梦者

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

开拓者

8
发表于 2015-5-27 07:30:52 | 只看该作者
1,实变量未赋值。
    p @test.size    #@test 未赋值, 为 nil (不存在的)

2,读取数据库某项超出范围。
    比如数据库只设置了100个技能,你要读取第101个技能的状态数组
    p $data_skills[101].plus_state_set  #101号技能本来就没有,所以为 nil

另外  size  多数用于获取数组单元个数,也有极少情况用于获取字符串字节。
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 04:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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