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

Wie konvertiere ich interface{} sicher in int in Go?

Mary-Kate Olsen
Freigeben: 2024-12-24 17:16:16
Original
588 Leute haben es durchsucht

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

Schnittstelle{} in int in Go konvertieren

Wenn Sie Daten aus JSON abrufen und versuchen, sie in eine Ganzzahl umzuwandeln, wird möglicherweise eine Fehlermeldung angezeigt, die besagt, dass die Konvertierung nicht möglich ist eine Schnittstelle{} zu einem int. Dieser Fehler tritt aufgrund der Typzusicherungsregeln von Go auf.

In Ihrem Code befindet sich die folgende Zeile:

iAreaId := int(val)
Nach dem Login kopieren

Diese Zeile versucht, den Wert zu konvertieren, der die Typschnittstelle{ }, zu einem int mithilfe einer Typumwandlung. Allerdings ist die Typumwandlung einer Schnittstelle{} in ein int nicht zulässig.

Um dieses Problem zu beheben, müssen Sie stattdessen eine Typzusicherung verwenden:

iAreaId := val.(int)
Nach dem Login kopieren

Eine Typzusicherung extrahiert das zugrunde liegende Wert aus der Schnittstelle{}, wenn es den deklarierten Typ hat. Wenn der Wert nicht den deklarierten Typ hat, gerät die Typzusicherung in Panik.

Alternativ können Sie eine nicht in Panik geratene Version der Typzusicherung mit einem zweiten Rückgabewert verwenden:

iAreaId, ok := val.(int)
Nach dem Login kopieren

Die ok-Variable ist wahr, wenn die Typzusicherung erfolgreich war, und falsch, wenn sie nicht erfolgreich war.

Durch die korrekte Verwendung einer Typzusicherung können Sie eine erfolgreich konvertieren interface{} zu einem int in Go.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich interface{} sicher in 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage