arrays - 将对象推入数组返回一个空数组
问题描述
问题
我有一个称为队列的方法,属于Board
返回空数组的类。我无法将修改后的对象推送到此数组。目前它返回一个空数组。
def queue
queue = []
end
功能解释
我有一个rules
方法,属于Board
有条件调用的类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
。每次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
类,继承自Board
def queue_for_birth(queue)
@will_survive = true
queue << self
end
但是,每当我调用 board.queue 时,都会返回一个空数组。
=> []
解决方案
向板类添加一个实例变量queue
解决了这个问题
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
推荐阅读
- php - 在服务器上找不到请求的 url - Laravel
- visual-studio - 致命错误 C1189: #error:
使用 /clr 或 /clr:pure 编译时不支持 - php - 无法在 mysqli 中使用方法链接
- google-drive-api - 我们如何使用 API 从谷歌驱动器帐户获取文件总数和目录数?
- ruby-on-rails - 安装rbenv时如何解决gem依赖?
- java - Java 错误:java.sql.SQLException:没有为参数 15 指定值
- python - 如何在 3-D 等高线图中绘制回归预测数据?
- vue.js - VueJS:为组件渲染动态模板
- jquery - 将 datetime2 日期类型转换为 datetime 数据类型导致超出范围
- spring-amqp - 重启rabbitMQ服务器后Spring AMQP无法连接回RabbitMQ服务器