Heim > Backend-Entwicklung > Golang > Wie konvertiere ich einen interface{}-Wert sicher in einen int in Go?

Wie konvertiere ich einen interface{}-Wert sicher in einen int in Go?

DDD
Freigeben: 2024-12-11 12:16:18
Original
801 Leute haben es durchsucht

How to Safely Convert an interface{} Value to an int in Go?

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.
Nach dem Login kopieren

Das Problem liegt in dieser Zeile:

    iAreaId := int(val)
Nach dem Login kopieren

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
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage