【发布时间】:2017-01-26 16:25:08
【问题描述】:
有没有办法重构这段代码?第一个 sn-p 是我目前拥有的,第二个是我正在尝试生成的逻辑。
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
在我的第四行,我想做类似的事情
board[count] = (8.times { board[count] << nil })
我知道它差不多一样长。我只是好奇或想刷新我的逻辑......谢谢!
【问题讨论】:
-
一般来说,在 Ruby 中你不需要保留计数器。您可以使用
each或map轻松迭代列表。因此,虽然@Ursus 的答案是正确的,但仅出于教育目的,在第 4 行,您可以执行以下操作:board[count] = (1..8).map { nil }。然后可以将其提升到更高的级别:board.map { (1..8).map { nil } }表示整个 sn-p 或其他内容(不确定这是否是预期的行为)。 -
我注意到您从不接受针对您的问题给出的答案。确保花一些时间检查您的问题并接受最佳答案,因为它们可以解决您的问题。通过这种方式,您可以让社区知道问题已得到解决,同时您会奖励提供解决方案的人的努力
标签: arrays ruby refactoring arrayofarrays