因此,我写了2D阵列级,用于在鲁比拉开展工作的Im项目。
简单明了:<代码> 初始化<> /code> 创建了2D阵列,其面积由其论点决定,称为@contents
。
I overload the [ ]
start to make the data within the Object accessible, as so:
def [] (x, y)
@contents[x][y]
end
def []=(x, y, z)
@contents[x][y] = z
end
页: 1 采用的方法,以便我能够把数字模块混在一起,并赋予它一些功能,例如:
def each
i, j =0,0
while (i<@size)
while(j<@size)
yield @contents[i][j]
j+=1
end
i, j = i+1, 0
end
end
页: 1 方法:
def to_s
@contents.each{|i| puts i}
end
现在,我在新档案中就这2D阵列物体设立了一个新案例,并试图填满。 顺便说一句:
j, i, k= 0, 0, 0
puts " size = #{@size}"
while (i<@size)
while(j<@size)
@2Darray[i,j], k, j= @array[k], k+1, j+1
end
i, j=i+1, 0
end
而这只是罚款。 定点-方法将精细地印刷阵列。 不过,我认识到,这些nes的 lo可能不是废墟,而是试图与排放者打交道。 我已经对<代码>each方法进行了修改,因此我试图对上述方法进行补充,具体如下:
j=0
@2Darray.each{|i|
i = @array[j]
j += 1
break unless j < size
}
但不幸的是,这并不奏效。 它只是罚款,但当叫到——时,它便在一线后印刷。 因此,它印制了一系列空阵。
我认为,这是我的手法,但是,当用手法指时,这种方法就行得当。 我认为,这可能是我的<代码>[]=方法,但当我使用nes时,该方法会进行罚款。
Now I m thinking it must be a problem with scoping. in my each-loop above, |i|
is a local variable, am I right? So that I assign the value of array[j]
to i
, but i is just a copy of the (empty) position which I want to fill, yes?
因此,首先,我是否走上正轨,或者我的问题是否完全存在? 如果是的话,如果是这样的话,那么我怎么能够把任务放在“2Darray”内的数据上,而不是仅仅改变“- <> > >> > 持有人的价值。
对我的博爱表示歉意,并感谢你的时间! 希望得到任何帮助。