Ruby 2D数组行为奇怪
我正在尝试用Ruby制作一个生活游戏,目前为止我有以下代码:Ruby 2D数组行为奇怪,ruby,arrays,multidimensional-array,Ruby,Arrays,Multidimensional Array,我正在尝试用Ruby制作一个生活游戏,目前为止我有以下代码: class Board def initialize(size) @board = [["-"] * size] * size @board[2][2] = "#" end def to_s @board.map{|r| r.map{|i| print (i ? i.to_s : " ") + " "} puts } end end puts Board.ne
class Board
def initialize(size)
@board = [["-"] * size] * size
@board[2][2] = "#"
end
def to_s
@board.map{|r|
r.map{|i| print (i ? i.to_s : " ") + " "}
puts
}
end
end
puts Board.new(5)
我预计结果如下:
- - - - -
- - - - -
- - # - -
- - - - -
- - - - -
但它却显示了这一点:
- - # - -
- - # - -
- - # - -
- - # - -
- - # - -
我不知道为什么,我非常感谢你的帮助。没关系,我找到了答案。我应该用的
@board = Array.new(size) { Array.new(size, "-") }
而不是
@board = [["-"] * size] * size