也是我的错,也算dz的错,for 一般都是用i做计数器的,dz的 [ i ] 就认为是斜体{:nm_7:} 所以后来我才会弄成iii{:nm_9:} 也就是我弄二维数组(3*3)的时候就错了?
|
这两段的 code 函数本就不一样嘛,顶楼在 p 的下方只是访问了 code_r 的一维,而楼上又变成了访问二维了…… [] 方法会检测传递进来的索引值是否越界,如果是则动态延长数组长度到(索引值+1),并用 nil 填充延长部分的数组元素~楼上这段代码报错就是因为当 for 循环中的 iii 被赋为 2 时,引用 code_r[2] 越界了,之后 code_r 数组被延长,code_r[2] 就返回了在索引 2 的位置上自动填充的那个 nil 所以对于这个 2×2 的数组,两个 for 循环的上限都应该是 1,或者用三个点的范围运算符,表示不包括上限本身(0...2) |
不是说了么,这段代码没报错,我还以为你在其它地方还有调用呢 |
第19行提到了,我调用的是:p DMath.code([1,2,3],[4,5,6]) 难道是我传递错了{:nm_7:} 现在在学校的微机室{:nm_3:} |
直接运行这段代码没有报错,你提到的问题可能是由于在调用 DMath.code 时给 b 传递了一个不是数组类型的对象(或者其它没有 [] 方法的对象)而导致的,具体得看报错的详细信息(undefined method '[]' for ???) |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-12-25 23:01
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.