Ich möchte klären, wenn ich das folgende Konzept richtig verstehe.Vorteil der berechneten Eigenschaften (nur gettes) gegen gespeicherte Eigenschaften
Angenommen, mein Ziel, die String
"Good morning, Mike"
in die Variable var sayGoodMorningToUser
zu speichern ist.
ist die Zeichenfolge aus zwei Variablen zusammengesetzt, nämlich
var greeting = "Good morning, "
var username = "Mike"
Welchen Unterschied macht es mit anderen Worten, wenn ich gespeichert Eigenschaften verwenden vs. berechneten Eigenschaften:
var sayGoodMorningToUserStored = greeting + username
vs.
var sayGoodMorningToUserComputed:String {
return greeting + username
}
Der einzige Unterschied, den ich zwischen diesen beiden Ansätzen sehe, ist, dass sich jeder ändern könnte der Wert von sayGoodMorningToUserStored einfach und direkt, z.B. von
var sayGoodMorningToUserStored = "myNewChangedValue"
während die Variable Schreiben sayGoodMorningToUserComputed kann nicht direkt geändert werden, weil es nicht einfach auf einen neuen String-Wert eingestellt werden kann:
var sayGoodMorningToUserComputed = "Hallo" //this would cause an error
Ansonsten kann ich nicht verstehen, warum die Leute die Variable anstatt einfach berechnen Schreiben
var sayGoodMorningToUserStored = greeting + username.
Kann jemand erklären, wenn ich es richtig verstanden habe? Oder gibt es auch andere Vorteile von berechneten Variablen gegenüber gespeicherten?
Ich möchte meine Frage nur auf getable-Variablen beschränken, weil das Erörtern von einstellbaren Variablen hier den Rahmen sprengen würde.
Der Zweck der berechneten Eigenschaft besteht darin, dass Sie sie einmal deklarieren, und wenn sich der 'Benutzername' ändert, wird die berechnete Eigenschaft" Begrüßung "automatisch aktualisiert, um dies zu berücksichtigen. Wenn sich der 'username' geändert hat, müssen Sie nicht daran denken,' sayGoodMorningToUserStored' ebenfalls zu aktualisieren. Wenn Sie es an anderer Stelle in Ihrem Code referenzieren, wird automatisch der aktuelle Wert von "Benutzername" und nicht der "Benutzername" angezeigt, wenn "sayGoodMorningToUserStored" zum ersten Mal deklariert wurde. – Rob
Der Hauptunterschied, den ich mir gerade denken kann, ist mit Protokollen und Protokollerweiterungen. Bei Protokollen kann der Status nicht gehalten werden, daher ist ein berechneter Wert am besten. – jonmecer
@Pisan Wenn Sie der Meinung sind, dass Ihre Frage erfüllt wurde, bewerten Sie bitte eine Frage als akzeptiert. – Alexander