查看: 2488|回复: 7

[已经解决] 关于for i in语法的请教

[复制链接]
梦石
0
星屑
66
在线时间
434 小时
注册时间
2006-5-25
回帖
178
发表于 2013-9-23 08:36:49 | 显示全部楼层 |阅读模式

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

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

×
错误的脚本如下:
def point_plus(param_id)
r=0
for i in 1 .. POINT_KIND
r+=@point[i]*POINT_ADD_PARAM[i-1][param_id]
end
return r
end

按F12后出现nil can't be coerced into Fixnum错误,错误地方提示上面那一段脚本,请问for i in语法是什么意思?先谢谢各位

梦石
0
星屑
407
在线时间
1291 小时
注册时间
2013-1-12
回帖
3349

贵宾

发表于 2013-9-23 09:03:36 | 显示全部楼层
for i in 什么的我是不知道啦......
不过錯誤是因為 i 是nil  而nil 無法转換成 Fixnum

回复

使用道具 举报

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2013-9-23 12:14:28 | 显示全部楼层
没有for i in的语法……
这个只是个普通的for循环……

for 变量 in 开始的数值..结束的数值

至于出错的原因…………
个人觉得是那个POINT_KIND被你设置成小数了啊

点评

小数不会有问题的……  发表于 2013-9-23 12:28

评分

参与人数 1星屑 +30 收起 理由
熊喵酱 + 30 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
122
在线时间
552 小时
注册时间
2012-8-18
回帖
1392
发表于 2013-9-23 12:31:40 | 显示全部楼层
出错原因目测是param_id为nil,或者POINT_ADD_PARAM[i-1][param_id] 为nil
for循环的语法是 for [变量名] in [可以转换为数组的对象] ;... ; end
等同于 [可以转换为数组的对象].each{|[变量名]| ... }

点评

感谢,对这个语法有点明白了  发表于 2013-9-23 18:59
我要填坑!我要背单词!我要学日语!我要每天锻炼!
好吧呵呵= =
回复

使用道具 举报

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2013-9-23 12:36:04 | 显示全部楼层
无脑之人 发表于 2013-9-23 12:31
出错原因目测是param_id为nil,或者POINT_ADD_PARAM 为nil
for循环的语法是 for [变量名] in [可以转换为数 ...

话说小数不会有问题吗?

for i in 1..3.1415926

的话循环会执行几次?

点评

因为转换成数组所以是3次 [1,2,3]  发表于 2013-9-23 12:47
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
回帖
1577

开拓者

发表于 2013-9-23 12:37:32 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

梦石
0
星屑
66
在线时间
434 小时
注册时间
2006-5-25
回帖
178
 楼主| 发表于 2013-9-23 18:57:30 | 显示全部楼层
按照楼上的脚本输入结果出来下面的东西,我是用了一个角色属性增加和自由加点系统,应该是两者之间有冲突、
QQ截图20130923185611.jpg

点评

大概是POINT_ADD_PARAM[i-1][param_id] 为nil了,可能param_id太大了?  发表于 2013-9-23 20:21
回复

使用道具 举报

梦石
0
星屑
66
在线时间
434 小时
注册时间
2006-5-25
回帖
178
 楼主| 发表于 2013-9-24 20:30:32 | 显示全部楼层
param_id去到11了。在状态界面可以读取数据,这里就成nil了
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部