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

Project1

 找回密码
 注册会员
搜索

脚本发生错误:undefined method 'side' for nil:nilclass!

查看数: 4172 | 评论数: 7 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-5-26 15:52

正文摘要:

本帖最后由 a107480098 于 2015-5-26 15:56 编辑 我在测试游戏时有时会出现:脚本发生错误:undefined method 'side' for nil:nilclass!不知道这是怎么回事?求解! 不知道大家遇到过这样的问题吗?请大家讨 ...

回复

芯☆淡茹水 发表于 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  多数用于获取数组单元个数,也有极少情况用于获取字符串字节。
判约之轮 发表于 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
a107480098 发表于 2015-5-26 21:56:57
芯☆淡茹水 发表于 2015-5-26 20:12
undefined method 'size' for nil:NilClass!
没有在 nil (NilClass) 找到 'size' 的方法。
运算中代入的 ...

能不能举个运算中代入的参数为 nil 了,检查并避免代入 nil 参数的例子,例如哪种情况下是正确的,哪种情况下又是错误的,谢谢!
你欠抽吧 发表于 2015-5-26 21:17:34
事件/公共事件/战斗事件中加入的脚本对于nil调用了size方法
应该找你编辑事件页时加入的脚本里对size的调用,而不是去脚本编辑器里搜索size,找到之后再分析为什么会出现nil
芯☆淡茹水 发表于 2015-5-26 20:12:43
undefined method 'size' for nil:NilClass!
没有在 nil (NilClass) 找到 'size' 的方法。
运算中代入的参数为 nil 了,检查并避免代入 nil 参数。
a107480098 发表于 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
白鬼 发表于 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
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-11-26 03:02

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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