In Go bieten Typschalter eine praktische Möglichkeit, verschiedene Objekttypen in einem einzigen Konstrukt zu verarbeiten. Allerdings können sich wiederholende Typzusicherungen innerhalb der Fälle mühsam und langwierig werden. Dieser Artikel befasst sich mit diesem Problem, indem er eine alternative Methode untersucht, um die Notwendigkeit expliziter Typzusicherungen zu beseitigen.
Bedenken Sie den folgenden Codeausschnitt:
switch question.(type) { case interfaces.ComputedQuestion: handleComputedQuestion(question.(interfaces.ComputedQuestion), symbols) case interfaces.InputQuestion: handleInputQuestion(question.(interfaces.InputQuestion), symbols) }
Hier Code wird der Typ der Fragevariablen in jedem Fall entweder für interfaces.ComputedQuestion oder interfaces.InputQuestion geltend gemacht. Diese Typzusicherung ist notwendig, um das Frageobjekt korrekt an die entsprechende Funktion zu übergeben.
Die Lösung besteht darin, das Ergebnis des Typwechsels einer neuen Variablen zuzuweisen, die das automatisch zuweist behaupteter Typ:
switch question := question.(type) { case interfaces.ComputedQuestion: handleComputedQuestion(question, symbols) case interfaces.InputQuestion: handleInputQuestion(question, symbols) }
Durch Zuweisen von Frage := Frage.(Typ) zur Fragevariablen innerhalb des Typschalters wird der richtige bestätigte Typ automatisch zugewiesen, sodass keine Notwendigkeit mehr besteht explizite Typzusicherungen. Diese Technik verbessert die Lesbarkeit des Codes erheblich und verringert das Fehlerpotenzial.
Betrachten Sie das folgende vereinfachte Beispiel:
package main func main() { var num interface{} = 5 switch num := num.(type) { case int: println("num is an int", num) case string: println("num is a string", num) } }
In diesem Beispiel beträgt die Zahl Der Schnittstellenvariablen wird der int-Wert 5 zugewiesen. Der Typschalter weist num als int zu und gibt die Anweisung „num is an int“ mit ihrem Wert aus. Wenn num eine Zeichenfolge zugewiesen würde, würde stattdessen die Anweisung „num ist eine Zeichenfolge“ gedruckt.
Durch die Verwendung der Technik der Zuweisung des Ergebnisses eines Typwechsels können Entwickler dies vermeiden Wiederholte Verwendung von Typzusicherungen in den Fällen eines Typwechsels in Go. Diese Technik vereinfacht den Code, reduziert Fehler und verbessert die Lesbarkeit.
Das obige ist der detaillierte Inhalt vonWie kann ich sich wiederholende Typzusicherungen bei Go-Typwechseln vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!