Ruby und Ändern von Self für eine Float-Instanz

8

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?

    
Arkan 09.01.2011, 17:42
quelle

3 Antworten

10

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.

    
sepp2k 09.01.2011, 18:10
quelle
1

Sie können auch eine Klasse erstellen und den Float in einer Instanzvariablen speichern:

%Vor%

Weitere Informationen zur Verwendung von "class Variable" hier .

    
Sony Santos 28.03.2011 11:45
quelle
0

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

%Vor%     
sethvargo 09.01.2011 18:18
quelle

Tags und Links