0

私はnil、nilを取得しますが、結果は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メソッドを使用して、それらの属性を設定すると思いましたか?

4

1 に答える 1

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
于 2012-05-05T05:09:07.907 に答える