Frage von mAin0x, 14

Methodenüberladungen in Ruby?

Gibt es in Ruby wzb. in C# Methodenüberladungen und wie funktionieren diese?

Ich habe zum üben eine eigene String-Klasse geschrieben. Ich möchte nun eine noch leichtere Funktion schreiben, die normale strings aber auch meine String-Klasse (Str) entgegennimmt.

Den folgenden Code habe ich probiert aber es klappt nicht:

MEIN STRING

def schreib(a= Str.new("") ) a.writes end #NORMALER STRING def schreib(a= "") b= Str.new(a) b.writes end

Antwort
von PeterKremsner, 9

Es gibt keine Methodenüberladung im eigentlichen Sinne weil Ruby eine dynamische Typisierung hat. Zwei Methoden mit selben Namen sind somit nicht unterscheidbar.

Siehe diese Frage:

http://stackoverflow.com/questions/9373104/why-doesnt-ruby-support-method-overlo...

Kommentar von mAin0x ,

achso, ja diesen weg kenne ch schon okay also ohne überladung

Kommentar von PeterKremsner ,

Jap, ist leider das Problem bei Sprachen wie dynamischer Typisierung wie Ruby oder PHP.

Und das obwohl es aufgrund von Typehinting schon beinahe möglich wäre (Typehinting kenne ich von PHP ob es bei Ruby auch geht weis ich nicht)

Keine passende Antwort gefunden?

Fragen Sie die Community