将对象推入数组会返回一个空数组
Pushing objects into an array is returning an empty array
问题
我有一个方法叫做队列,属于Board
Class那个returns一个空数组。我无法将修改后的对象推送到此数组。目前它 returns 是一个空数组。
def queue
queue = []
end
功能说明
我有一个 rules
方法,它属于 Board
Class 有条件地调用 queue_for_birth
或 queue_for_death
def rules(cell)
if something
cell.queue_for_birth
else something_else
cell.queue_for_death
end
end
此方法在 game_logic
方法中包含的每个块中多次调用,该方法也属于 Board
Class。
每次 rules
被调用时,它 queues_for_birth
或 queues_for_death
,它应该将该单元格实例添加到名为队列
的数组中
def game_logic(cells)
cells.each_with_index do |cell,index|
if index == 0
rules(cell) #push to the queue
end
if index == 1
rules(cell) #push to the queue
end
...
这里是将单元添加到队列的逻辑所在,它属于 Cell
Class,它继承自 Board
def queue_for_birth(queue)
@will_survive = true
queue << self
end
但是,每当我调用 board.queue 时,都会返回一个空数组。
=> []
将实例变量 queue
添加到面板 class 解决了这个问题
class Board
def initialize(live_cell_count, queue)
@live_cell_count = live_cell_count
@queue = queue
end
def queue
@queue
end
在条件中插入 queue.push(cell)
成功将每个单元格附加到 queue
数组。
def rules(cell)
if something
cell.queue_for_birth
@queue.push(cell)
else something_else
cell.queue_for_death
@queue.push(cell)
end
end
问题
我有一个方法叫做队列,属于Board
Class那个returns一个空数组。我无法将修改后的对象推送到此数组。目前它 returns 是一个空数组。
def queue
queue = []
end
功能说明
我有一个 rules
方法,它属于 Board
Class 有条件地调用 queue_for_birth
或 queue_for_death
def rules(cell)
if something
cell.queue_for_birth
else something_else
cell.queue_for_death
end
end
此方法在 game_logic
方法中包含的每个块中多次调用,该方法也属于 Board
Class。
每次 rules
被调用时,它 queues_for_birth
或 queues_for_death
,它应该将该单元格实例添加到名为队列
def game_logic(cells)
cells.each_with_index do |cell,index|
if index == 0
rules(cell) #push to the queue
end
if index == 1
rules(cell) #push to the queue
end
...
这里是将单元添加到队列的逻辑所在,它属于 Cell
Class,它继承自 Board
def queue_for_birth(queue)
@will_survive = true
queue << self
end
但是,每当我调用 board.queue 时,都会返回一个空数组。
=> []
将实例变量 queue
添加到面板 class 解决了这个问题
class Board
def initialize(live_cell_count, queue)
@live_cell_count = live_cell_count
@queue = queue
end
def queue
@queue
end
在条件中插入 queue.push(cell)
成功将每个单元格附加到 queue
数组。
def rules(cell)
if something
cell.queue_for_birth
@queue.push(cell)
else something_else
cell.queue_for_death
@queue.push(cell)
end
end