InhaltsverzeichnisKlicke auf den Link, um zur gewünschten Stelle zu navigieren
Dieser Inhalt wurde automatisch aus dem Ukrainischen übersetzt.
Unveränderlichkeit und Veränderlichkeit – das sind Eigenschaften von Objekten (in der Programmierung und anderen Bereichen), die bestimmen, ob Objekte nach ihrer Erstellung verändert werden können. Ich habe nachgeschaut, wie es richtig ist – ist es mutabelE oder mutabelItät, und es scheint, dass beide Varianten korrekt sind (aber das ist nicht sicher ^_^).
Beispiel für Unveränderlichkeit
Stellen Sie sich ein Foto vor, das Sie gemacht und ausgedruckt haben. Nachdem das Foto ausgedruckt wurde, können Sie seinen Inhalt nicht mehr ändern. Wenn Ihnen nicht gefällt, dass auf dem Foto jemand mit geschlossenen Augen abgebildet ist, können Sie dieses Foto nicht ändern – stattdessen müssen Sie ein neues Foto machen. In diesem Beispiel ist das Foto unveränderlich.
Beispiel für Veränderlichkeit
Stellen Sie sich nun eine Tonfigur vor, die Sie formen. Wenn Sie entscheiden, dass Sie die Form der Nase an der Figur ändern möchten, können Sie dies leicht tun, indem Sie die Form des Tons ändern. In diesem Beispiel ist die Tonfigur veränderlich.
Beispiel aus der Programmierung (Ruby)
Strings in vielen Programmiersprachen sind unveränderlich. Das bedeutet, dass der Wert eines Strings nach seiner Erstellung nicht mehr geändert werden kann. Aber jede Sprache hat ihre eigenen Nuancen, und je nach Version der Sprache kann das Konzept von Unveränderlichkeit/Veränderlichkeit variieren.
Zum Beispiel in Ruby – ein String kann mutieren (verändert werden). Lassen Sie uns das überprüfen (ruby 3.2.1):
str = "Hello" puts str.object_id => 1960 str.upcase! => "HELLO" puts str => HELLO puts str.object_id => 1960
Das heißt, mit der Methode upcase! haben wir den Text der Variablen geändert.
Wenn wir möchten, dass Strings nicht verändert werden, müssen wir einen magischen Kommentar (magic comment) am Anfang des Ruby-Skripts hinzufügen:
# frozen_string_literal: true
Das heißt, unsere Datei (example.rb) wird so aussehen:
# frozen_string_literal: true str = "Hello" puts str.object_id str.upcase! puts str puts str.object_id
Und das Ergebnis seiner Ausführung wird folgendermassen sein:
ruby ~/Desktop/example.rb 60 /Users/user/Desktop/example.rb:5:in `upcase!': can't modify frozen String: "Hello" (FrozenError) from /Users/user/Desktop/example.rb:5:in `<main>'
Wir sehen, dass das Skript – 60 ausgegeben hat. Das ist das Ergebnis des Codes puts str.object_id. Und dann erhalten wir einen Laufzeitfehler bei der Modifikation des Strings – can't modify frozen String: "Hello" (FrozenError). Das bedeutet, wir haben die Werte (string literal) eingefroren und erhalten jetzt einen Fehler, wenn wir versuchen, sie zu ändern. Es wird gesagt, dass Ruby 3.4 standardmäßig gefrorene Literale haben wird. Daher müssen wir die Option --disable-frozen-string-literal oder etwas Ähnliches hinzufügen, um Fehler nach dem Update zu vermeiden. Lassen Sie uns sehen.
Unveränderlichkeit und Veränderlichkeit sind grundlegende Konzepte in der Programmierung, die Programmierern helfen, den Zustand von Objekten und deren Änderungen zu verwalten. Die Verwendung unveränderlicher Objekte kann den Code vorhersehbarer und einfacher zu testen machen, während veränderliche Objekte bequemer für die Modellierung dynamischer Systeme sein können.
Dieser Beitrag hat noch keine Ergänzungen vom Autor.