0

こんにちは、インスタンス メソッドの定義に行き詰まっています。チュートリアルでは次のように尋ねます。

残高を返す BankAccount クラスに balance というメソッドを定義します。

コードには次のものがあります。

class BankAccount
      def initialize(balance)
          @balance = balance
      end
    # your code here
end

質問が何を求めているのか、私は本当に混乱しています。どんな助けでも大歓迎です...

4

3 に答える 3

1

では、コード例を見てみましょう:

class BankAccount
      def initialize(balance)
          @balance = balance
      end
    # your code here
end

ここでは、次の方法でオブジェクト の作成時に自動的に呼び出されるメソッド (コンストラクターとも呼ばれます) を定義するBankAccountクラスを定義しています。BankAccount#initializeBankAccountBankAccount::new

BankAccount.new( 123 )

上記の例@balanceでは、 に設定され123ます。@balanceはインスタンス変数です (名前の前にあることに注意してください)。これは、定義した任意のメソッド内でオブジェクトごとに@アクセスできることを意味します。

その変数を返すには、演習で求められているように、次のようにメソッドreturn内でキーワードを使用できます。BankAccount#balance

def balance
    return @balance
end

Ruby 構文では、(メソッドから最後に評価された式を常に返すように意図されているため) 省略returnして、より簡潔な構文にすることもできます。

def balance
    @balance
end

この種のgetter メソッド(= インスタンス変数を返すメソッド) には、attr_reader次のように使用できる簡単なユーティリティがあります。

class BankAccount

    attr_reader :balance

    def initialize(balance)
        @balance = balance
    end

end

しかし、心配しないでください。おそらく、すぐに上記のことを学ぶでしょう。楽しい学習。

于 2013-08-05T01:49:48.783 に答える