Thread Nicht benötigte Argumente trotzem in eine Variable kopieren?
(29 answers)
Opened by Kuerbis at 2018-02-22 08:19
Das ist ja eine sehr merkwürdige Konstruktion.
Mit dem Wort "package ...", der Funktion new() und darin bless() wird eine Klasse definiert. Die Variable $self enthält normalerweise die Attribute, die in der Klasse verwendet werden (vgl. mein Beispiel). Hier ist in new() aber gar kein $self. In den Funktionen innerhalb einer Klasse (den "Methoden") muß immer dieses $self am Anfang übergeben werden, damit die Attribute auch in der Methode verfügbar sind, und damit deutlich wird, daß es sich nicht um eine alleinstehende Funktion handelt, sondern um eine Methode innerhalb einer Klasse. Insofern wäre die Antwort auf Deine Frage: In databases() kannst Du $parameter weglassen, weil Du ihn nicht verarbeitest. Aber das $self wegzulassen, obwohl es sich um eine Methode innerhalb einer Klasse handelt, geht normalerweise nicht; und hier geht es zumindest aus Gründen des Programmierstils auch nicht. Ich hätte auch in new() das $self mit definiert, auch wenn es leer ist. Das ist irgendwie auch nötig, sonst kannst Du den Methoden ja gar nichts Sinnvolles für $self übergeben. Last edited: 2018-02-22 16:25:49 +0100 (CET) |