我有一个类Board
,其中包含我要打印为另一个类Cell
的对象。我随机为每个单元格分配了'x'
或'o'
的值,我希望它能够打印'x'
和'o'
的二维数组。
这是我的代码:
class Cell
attr_accessor :cell
def initialize
@cell = ['x', 'o'].sample
end
end
class Board
attr_reader :board
attr_accessor :row
def initialize
@board = Array.new(9)
@row = Array.new(9)
@my_cell = ''
end
def create_row
self.row.map! do |empty_space|
empty_space == nil ? Cell.new : empty_space
end
end
def create_board
self.board.map! do |empty_space|
empty_space == nil ? self.row : empty_space
end
end
def to_s
self.board
end
end
new_board = Board.new
new_board.create_row
new_board.create_board
puts new_board.to_s
当我打印电路板时,它会给出一个单元对象坐标列表。我无法理解。
答案 0 :(得分:2)
to_s
应该返回String
,这就是为什么它首先被称为to_s
。您将从Array
而不是to_s
返回String
。
答案 1 :(得分:0)
尝试awesome_print。这很棒。它以非常易读的格式转储您的对象,例如:
jQuery.param()
您可以在github上找到它或将其添加到您的Gemfile
:014 > ap Major.first
Major Load (4.2ms) SELECT "majors".* FROM "majors" ORDER BY "majors"."id" ASC LIMIT 1
#<Major:0x007f8677e77c50> {
:id => 9,
:name => "Art",
:profile_id => 85676,
:school_code => 123,
:created_at => Fri, 11 Dec 2015 21:22:25 UTC +00:00,
:updated_at => Fri, 11 Dec 2015 21:22:25 UTC +00:00
}