Rob*_*ews 1 ruby arrays refactoring arrayofarrays
有没有办法重构这段代码?第一个片段是我现在拥有的,第二个是我试图制作的逻辑.
count = 0
until count >= board.length
if board[count] == nil
board[count] = [nil, nil, nil, nil, nil, nil, nil, nil,]
end
count += 1
end
board
Run Code Online (Sandbox Code Playgroud)
在我的第四行,我想做类似的事情
board[count] = (8.times { board[count] << nil })
Run Code Online (Sandbox Code Playgroud)
我知道这只是一段时间.我只是好奇或者想要清除我的逻辑...谢谢!!
尝试使用Array的构造函数
Array.new(8)
=> [nil, nil, nil, nil, nil, nil, nil, nil]
Array.new(8, 42)
=> [42, 42, 42, 42, 42, 42, 42, 42]
Run Code Online (Sandbox Code Playgroud)
如果你需要一个对象并且不希望每个实例都相同,则传递一个块
Array.new(8) { Hash.new }
=> [{}, {}, {}, {}, {}, {}, {}, {}]
Run Code Online (Sandbox Code Playgroud)