在ruby

时间:2015-10-06 05:03:11

标签: ruby

def initialize(ukuran)
    @kata = Array.new(ukuran, '@')
    @olah = @kata.join('')
    @cek = Array.new(ukuran, @olah)
end

我在我的简单ruby代码中有这些代码,这些代码将生成ukuran x ukuran大小的二维char数组。当我想要更改特定索引中的字符时,例如@cek[2][3],它会改变其后面带有索引3的另一个索引中的字符,例如@cek[0][3]@cek[1][3]

这种类型的数组有什么我没有得到的吗?我是红宝石的新手,因为我知道它可以用另一种语言工作。

2 个答案:

答案 0 :(得分:4)

您可以简化如下:

def doit(n)
  Array.new(n) { '@'*n }
end

@cek = doit(3)
  #=> ["@@@", "@@@", "@@@"] 
@cek[1][1] = 'x'
@cek #=> ["@@@", "@x@", "@@@"] 

答案 1 :(得分:0)

试试这个

def initialize(ukuran)
    @kata = Array.new(ukuran, '@')
   ## @olah = @kata.join('')
    @cek = Array.new(ukuran, @kata)
 end