Ich habe ein Array von einigen Daten, die ich in []string
zuordnen möchte. Ich kann es auf 2 Arten tun:Wie Art Assert-Fehler in Golang zu protokollieren?
a)
// someData
s := someData.([]string)
In diesem Fall würde die Ausführung stoppen, nachdem auf der Konsole die Fehler auflistet.
b)
// someData
s, ok := someData.([]string)
In diesem Fall würde keine Fehler auftreten, aber s wird seine Null-Wert haben
ich die Fehler in einer solchen Art Assertionsfehler Fälle protokollieren wollen, ohne zu stoppen die Hinrichtung. Wenn ich jedoch Typ (b) verwende, kann ich die Fehlerdetails nicht sehen.
Die einzige Lösung, die ich denken kann, ist, reflect.TypeOf
zu verwenden und beide Typen zu drucken.
Gibt es eine andere Möglichkeit, den Fehler bei der Verwendung von Lösung (b) zu bekommen?
Verwunderlich, dass golang nicht Überprüfung erfordert, dass die Art Behauptung gültig ist. Konnte man nicht die Gültigkeit der Typ-Assertion überprüfen, die zu Laufzeitfehlern führte? – Kwestion
@Kwestion Der OK-Wert gibt an, ob die Typbestätigung gültig ist. –
Richtig, und wenn Sie mit importierten Daten wie einer Konfigurationsdatei oder json umgehen - es ist möglich, dass wenn Sie Typen bestätigen, Sie scheitern werden. Wenn Ihre Typbestätigung fehlschlägt, ohne ihre Gültigkeit zu überprüfen, was passiert? – Kwestion