2017-09-30 27 views
0

への入力の戻り値:ルビー:私のテストコードは、次の言うクラス

d001 = SimpleDate.new(2016, 1, 4) 
assert(d001.year == 2016) 

年のの入力は2016年である私は、このテストが正常に戻って2016

を取得したい私のクラスコードは言います次

class SimpleDate 
    def initialize(year, month, day) 
    @year = year 
    @month = month 
    @day = day 
    end 
end 

他に何私は SimpleDate.new(2016,1,4).year == 2016を置くことができるように入れて、私のクラスからのエラーを取得できませんする必要がありますか?私は@yearがそれをすることを望んでいた。

+1

と同じである

class SimpleDate attr_reader :year def initialize(year, month, day) @year = year @month = month @day = day end end 

エラーはあなたが必要なものと言っていますか? –

答えて

2

年間にattr_readerを追加します。

def year 
    @year 
end 
+0

Bill:[Module :: attr_reader](https://ruby-doc.org/core-2.4.0/Module.html#method-i-attr_reader)は、クラスの作成時に呼び出されるクラスメソッドです。 'attr_reader:year'は' self.attr_reader(:year) 'に相当します。' self'はその時点で 'SimpleDate'に等しいので' SimpleDate.attr_reader(:year) 'と同じです。ドキュメントから、 'attr_reader" year "'と書くことができますが、完了したことは表示されません。 –

+0

Ursusありがとうございます。それはうまくいった!大いに感謝している@CarySwoveland何を意味するのですか? 1人の余分なキャラクターのために人々はその構文が気に入らない傾向がありますか? –

+0

私の喜びBill;) – Ursus

関連する問題