Verwendung der Freeze-Methode in Ruby
Dieser Artikel stellt vor, wie wir die freeze
-Methode für Objekte in Ruby verwenden können.
Verwendung von die freeze
-Methode in Ruby
Wir können die freeze
-Methode in Ruby verwenden, wenn wir ein Objekt nicht mehr ändern möchten und sicherstellen möchten, dass es nicht geändert werden kann. Mit dieser Methode können wir schnell unveränderliche Objekte generieren.
Das Programm zeigt einen Fehler an, wenn wir versuchen, ein Objekt zu ändern, auf das die Methode freeze
angewendet wird. Ein Fall der Verwendung der freeze
-Methode mit einem Array wird unten gezeigt.
# Ruby
fruits = ["orange","banana","strawberry"]
fruits.freeze
fruits <<"watermelon"
Wir erhalten eine Fehlermeldung, wenn wir versuchen, diesen Code auszuführen. Im Falle eines Strings wird die Verwendung der freeze
-Methode unten gezeigt.
# Ruby
str = "Hey"
str.freeze
str <<" How are you?"
Dadurch werden auch Laufzeitfehler angezeigt. Im Fall eines Objekts wird die Verwendung der Methode freeze
unten gezeigt.
# Ruby
class Fruits
def initialize(name)
@name = name
end
def get_name
return @name
end
def set_name(name)
@name = name
end
end
a = Fruits.new("apple")
a.freeze
a.set_name("melon")
puts a.get_name
Ausgabe:
In den obigen Beispielen trat ein Fehler auf, weil wir versucht hatten, Objekte zu ändern, wenn sie bereits mit der Methode freeze
eingefroren waren.
Einschränkungen der freeze
-Methode in Ruby
Es gibt einige Einschränkungen bei der freeze
-Methode. Es ist wichtig zu verstehen, dass wir Variablen in Bezug auf eingefrorene Objekte ändern können.
Dies liegt daran, dass wir die Objekte mit dieser Methode nur eingefroren haben. Variablen, die sich auf diese Objekte beziehen, können frei geändert werden.
Hier ist ein Beispiel, das veranschaulicht, wie wir ein eingefrorenes Objekt durch Zugriff auf dieselbe Variable in ein neues Ding ändern können.
# Ruby
str = "Hey James"
str.freeze
str = "Hey Petr"
puts str
Ausgabe:
Wir können die Methode freeze
verwenden, um zu prüfen, ob ein Objekt unveränderlich ist.
# Ruby
str2 = "Hey Julia"
str2.freeze
str4 = "Julia is very nice"
num = 120.5
num.freeze