Als ich im Rahmen einer LinkedList-Implementierung einen Code zum Erlernen der Sprache in Ruby schrieb, stieß ich auf folgende Warnung:
Bei der "add" -Methode wird der Kopf erstellt, wenn er nicht bereits existiert, d. h.
%Vor%Ich bekomme dann die Warnung
%Vor%Wie werde ich diese Warnung los? Was ist der idiomatische Weg, dies zu tun?
Zusätzlich zum Vorschlag von Matchu können Sie auch defined?
verwenden, um @head
lazily hier zu initialisieren, ohne die Warnung zu provozieren:
Das normale Idiom für solche Dinge ist
%Vor% was auch nicht die Warnung provoziert, aber in diesem Fall scheint es so, als ob Sie etwas tun müssen, wenn @head
nicht definiert wurde, und es ist nicht idempotent, also wird ||=
in diesem Fall nicht sehr gut funktionieren . ||=
hat auch den Nachteil, nicht zwischen false, nil oder unset unterscheiden zu können. Die Initialisierung auf nil
in initialize ist wahrscheinlich die beste Wahl.
Sie können die Operation !
für @head
nicht ausführen, wenn sie nicht existiert. Sie müssen es zuerst initialisieren. Sie sollten es wahrscheinlich als nil
deklarieren.
Tags und Links ruby