我没有,没有,但我预计结果为9,'我的数独'
class Soduko
attr_accessor :name, :rows, :columns
def initialize
rows = 9
columns = 9
name = 'My Soduko'
end
end
new_soduko= Soduko.new
puts new_soduko.rows
puts new_soduko.name
$ ruby soduko.rb
nil
nil
我认为new会使用initialize方法并设置这些属性吗?
答案 0 :(得分:4)
您需要的是instance variable
方法中的initialize
。您可以通过在名称前加上@来创建实例变量。使用new_soduko = Soduko.new创建新的Soduko对象时,您需要为该特定对象设置实例变量。没有@,你刚刚在initialize方法中创建了局部变量。
class Soduko
attr_accessor :name, :rows, :columns
def initialize
@rows = 9 # adding @ makes these instance variables.
@columns = 9
@name = 'My Soduko'
end
end
new_soduko= Soduko.new
puts new_soduko.rows
puts new_soduko.name