Vorausgesetzte Umgebung:
Nicht auf Swift beschränkt, wird "das Vermeiden einer Neuzuweisung zu Variablen (so weit wie möglich)" allgemein als Theorie zum Schreiben von sicherem Code verstanden.
Ähnliche Links: Warum möchten Sie eine Neuzuweisung zu Variablen vermeiden?
In der Praxis ist es jedoch leicht zu glauben, dass Sie den Neuzuweisungscode schreiben müssen, wenn die Zuweisung des Anfangswertes wie unten gezeigt einen Zweig enthält.
Probe A.
//Die Variable foo ist ""hoge" or "fuga"Die Absicht ist, dass einer von ihnen initialisiert wird und sich danach nicht ändert. "
var foo = ""
if isHoge {
foo = "hoge"
} else {
foo = "fuga"
}
Der obige Code kann eine Neuzuweisung zur Variablen "foo" nicht verhindern.
Es bleibt möglich, dass foo
irgendwo auf einen anderen Wert als (" hoge "oder" fuga ") gesetzt wird.
Der obige Code kann wie folgt verbessert werden.
Probe B.
let foo: String
if isHoge {
foo = "hoge"
} else {
foo = "fuga"
}
** Wenn es einen Pfad gibt, der nicht initialisiert ist, macht der Compiler einen Fehler **. Wenn Sie also beabsichtigen, "den Anfangswert einmal festzulegen und ihn dann nicht neu zuzuweisen",
--Variable Initialisierungsauslassungen können verhindert werden.
In dieser Hinsicht halte ich den Code in Beispiel B für sicherer.
Recommended Posts