Ich möchte den Eigenwert einer Float-Instanz ändern.
Ich habe die folgende Methode:
%Vor%Und ich möchte das round_by hinzufügen! Methode, die den Eigenwert ändern wird.
%Vor%Aber ich habe eine Fehlermeldung erhalten, dass ich den Wert von self nicht ändern kann.
Irgendeine Idee?
Sie können den Wert von self
nicht ändern. Es zeigt immer auf das aktuelle Objekt, Sie können es nicht auf etwas anderes zeigen.
Wenn Sie den Wert eines Objekts ändern möchten, tun Sie dies entweder durch Aufruf anderer Mutationsmethoden oder durch Setzen oder Ändern der Werte von Instanzvariablen, nicht indem Sie versuchen, self
neu zuzuweisen. In diesem Fall wird Ihnen das jedoch nicht weiterhelfen, da Float
keine Mutationsmethoden hat und das Setzen von Instanzvariablen nichts kauft, da keine der Standardvariablen von Instanzvariablen betroffen ist.
Die Quintessenz ist: Sie können keine Mutationsmethoden auf Gleitkommazahlen schreiben, zumindest nicht so, wie Sie es wollen.
Sie können auch eine Klasse erstellen und den Float in einer Instanzvariablen speichern:
%Vor%Weitere Informationen zur Verwendung von "class Variable" hier .
Das ist wirklich eine wirklich gute Frage und es tut mir leid zu sagen, dass Sie das nicht können - zumindest nicht mit der Klasse Float
. Es ist unveränderlich. Mein Vorschlag wäre, Ihre eigenen Klasse die Float-Werkzeuge (aka erbt alle Methoden), wie in Pseudo-Code
Tags und Links ruby