2012-07-30 11 views
5

Was ist los mit dieser set/get?Ruby-Klasse gesetzt/erhalten

class Pupil 
    def name 
    @name 
    end 

    def name=(name) 
    @name = name 
    end 

    def age 
    @age 
    end 

    def age=(age) 
    @age 
    end 
end 

Weitere auf dem gleichen, wenn es ein Kind-Klasse mit 3 Argumente, Name, Alter, Geschlecht, würde der Satz get-Methode in das Kind für Sex nur. Können Sie bitte die set/get-Methode anzeigen und initialisieren in der Kindklasse.

+4

'name' in Ordnung ist. 'age =' tut nicht, was es soll. –

+0

Danke Sergio Tulentsev. – Selvam

Antwort

13
def age=(age) 
    @age 
    end 

sollte

sein
def age=(age) 
    @age = age 
    end 

Sie Ihren Code auch schön durch Ersetzen get machen kann/set mit attr_accessor, die selbst eine Getter/Setter bietet

class Pupil 
    attr_accessor :age,:name 
end 
+0

@Selvam, weitermachen? – PriteshJ

+0

PriteshJ. Vielen Dank. Ich habe es gelöst. (Tatsächlich bearbeite ich die zusätzliche Frage zu meiner ursprünglichen Frage.) – Selvam

+0

OK, 'attr_accessor' ist, was ich gesucht habe. Wo finden Sie diese Informationen in der offiziellen Dokumentation als jemand, der Ruby lernt? Ich habe durch http://ruby-doc.org/ geschaut, aber es erwähnt das kaum unter "Modul" (nicht "Klasse") und selbst dort werden Begriffe wie Eigentum, Getter, Setzer nicht erwähnt ... Es ist irgendwie schwer, diese Konzepte von dort zu lernen. Im Wesentlichen suche ich nach dem Ruby-Äquivalent des offiziellen Python-Tutorials - https://docs.python.org/3/tutorial/. – metakermit

1

Sie haben vergessen, @age = age zu setzen.

+0

Danke Phil Aquilina. – Selvam