我刚看到这段代码:
@board=Array.new(7){Array.new(7)}
我从来没有在 ruby 中见过数组的这种语法,搜索后我找不到太多关于它的内容。我真的不明白这里的花括号是怎么回事。我希望有人能给我一个简短的解释。谢谢!
最佳答案
new
的 block 语法允许您初始化单独的数组元素,可选地基于 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]]
关于arrays - 这个数组语法在 Ruby 中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38148228/