[ruby-de] Funktion nicht verfügbar?

Wolfgang Nádasi-Donner ruby at wonado.de
Di Apr 18 08:19:19 JST 2017


Am 18.04.2017 um 00:55 schrieb Die Optimisten:
> Hallo!
> 
> class Test
>   def f
>     print "Es funktioniert"
>   end
>   f
> end
> 
> Was muß ich machen, damit ich innerhalb der Klasse die Funktion f
> verwenden kann?
> 
> Danke
> 
> 
Guten Morgen!

Das kannst Du auf zwei Arten lösen, und zwar so...

class Test
  def f
    print "Es funktioniert"
  end
  new.f # für: self.new.f
end

...oder aber so...

class Test
  def self.f
    print "Es funktioniert"
  end
  f # für: self.f
end


Klar warum?

Im ersten Fall wird eine Methode definiert, die erst von Objekten der
Klasse benutzt werden kann, also muss man erst einmal eines erzeugen. Im
zweiten Fall wird eine Klassenmethode definiert, die man dann innerhalb
der Klasse einfach so aufrufen kann (das Objekt "self" wird implizit
benutzt, weshalb man es, wie im Beispiel, einfach weglassen kann).

Gruss WoNáDo


Mehr Informationen über die Mailingliste ruby-de