Typzusicherungen für Interface{}-Wertkonvertierungen in Int
Das Konvertieren eines Interface{}-Werts in int kann zu Fehlern führen, wenn es nicht korrekt ausgeführt wird. Für diese Konvertierung ist eine Typzusicherung erforderlich.
Erklärung des Fehlers
Die Fehlermeldung weist darauf hin, dass Sie den Wert von interface{} nicht direkt in int konvertieren können, da dies erforderlich ist eine Typzusicherung.
Codeprüfung
In Ihrem Code:
val, ok := m["area_id"] if !ok { utility.CreateErrorResponse(w, "Error: Area ID is missing from submitted data.") return } fmt.Fprintf(w, "Type = %v", val) // <--- Type = float64 iAreaId := int(val) // <--- Error on this line.
Das Problem liegt in dieser Zeile:
iAreaId := int(val)
Lösung
Anstatt den Wert direkt umzuwandeln, müssen Sie dies tun Verwenden Sie eine Typzusicherung. Es prüft, ob der Wert in int konvertiert werden kann und gibt andernfalls einen Fehler aus. Dafür gibt es zwei Möglichkeiten:
// Panicking version iAreaId := val.(int) // Non-panicking version iAreaId, ok := val.(int) if !ok { // Handle the error case here }
Durch diese Änderung können Sie den Wert von interface{} erfolgreich in int konvertieren und mit der Ausführung Ihres Codes fortfahren.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen interface{}-Wert sicher in einen int in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!