我刚看到这段代码:
@board=Array.new(7){Array.new(7)}
我从来没有在ruby中看到过这个数组的语法,我在搜索后找不到太多内容。我真的不知道这里的花括号是怎么回事。我希望有人可以给我一个简短的解释。谢谢!
答案 0 :(得分:3)
new
的块语法允许您初始化各个数组元素,可选择基于index
数字。在你的情况下,不使用索引,但所有7个数组元素都使用7个元素的嵌套数组进行初始化,因此你得到一个7x7"矩阵"。
举例说明:
$ irb
irb(main):001:0> Array.new(7)
=> [nil, nil, nil, nil, nil, nil, nil]
$ irb
irb(main):001:0> require 'pp'
=> true
irb(main):002:0> pp Array.new(7) {Array.new(7)}
[[nil, nil, nil, nil, nil, nil, nil],
[nil, nil, nil, nil, nil, nil, nil],
[nil, nil, nil, nil, nil, nil, nil],
[nil, nil, nil, nil, nil, nil, nil],
[nil, nil, nil, nil, nil, nil, nil],
[nil, nil, nil, nil, nil, nil, nil],
[nil, nil, nil, nil, nil, nil, nil]]