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

Wie kann ich interface{} in Go sicher in int umwandeln?

Susan Sarandon
Susan SarandonOriginal
2024-12-12 13:53:10681Durchsuche

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

Schnittstelle{} in Int umwandeln

Wenn Sie einen Wert aus JSON extrahieren und versuchen, ihn in eine Ganzzahl umzuwandeln, kann ein Fehler auftreten Dies zeigt an, dass eine Schnittstelle {} nicht direkt in int konvertiert werden kann. Um dieses Problem zu beheben, ist eine Typzusicherung erforderlich.

Im bereitgestellten Codebeispiel verursacht die Zeile:

iAreaId := int(val)

einen Fehler, da val eine Schnittstelle{} ist, die nicht direkt umgewandelt werden kann zu int. Stattdessen ist eine Typzusicherung erforderlich:

iAreaId := val.(int)

Diese Typzusicherung wandelt den Wert von val zwangsweise in einen int um. Alternativ können Sie die nicht in Panik geratene Version verwenden:

iAreaId, ok := val.(int)

Durch die Einbeziehung der ok-Variablen können Sie überprüfen, ob die Behauptung erfolgreich war, bevor Sie fortfahren.

Außerdem ist es wichtig, dies zu beachten Explizite Konvertierungen können nur durchgeführt werden, wenn die zugrunde liegenden Typen von Quelle und Ziel kompatibel sind, wie in der Go-Sprachspezifikation definiert.

Das obige ist der detaillierte Inhalt vonWie kann ich interface{} in Go sicher in int umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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