Heim >Backend-Entwicklung >Golang >Wie konvertiere ich eine Schnittstelle{} sicher in ein int in Go?
Konvertieren von interface{} in int in Go
Ihr Go-Code versucht, einen interface{}-Wert direkt in einen int zu konvertieren, aber der Die Konvertierung schlägt aufgrund von Typbeschränkungen fehl. Die Fehlermeldung weist darauf hin, dass für diese Konvertierung eine Typzusicherung erforderlich ist.
Lassen Sie uns das Problem und seine Lösung verstehen:
Problem:
Im Im bereitgestellten Code ist die Variable val vom Typ interface{}. Dies bedeutet, dass es Werte jeglicher Art enthalten kann. Die Zuweisung iAreaId := int(val) versucht, den interface{}-Wert in einen int-Wert umzuwandeln. Diese direkte Konvertierung ist jedoch in Go nicht zulässig.
Lösung:
Um einen Interface{}-Wert ordnungsgemäß in einen bestimmten Typ zu konvertieren, ist eine Typzusicherung erforderlich. Eine Typzusicherung gibt dem Compiler einen expliziten Hinweis darauf, dass Sie den Wert in einen bestimmten Typ konvertieren möchten.
Um val als int zu bestätigen, verwenden Sie eine der folgenden Syntaxen:
Panikanfällig:
iAreaId := val.(int)
Wenn val nicht in int konvertiert werden kann, ist dies der Fall Ansatz wird in Panik geraten.
Keine Panik:
iAreaId, ok := val.(int)
Dieser Ansatz weist iAreaId dem konvertierten Wert und ok einem booleschen Wert zu, der angibt, ob Die Konvertierung war erfolgreich. Wenn die Konvertierung fehlschlägt, ist ok falsch.
Verstehen der Konvertierungsregeln:
Direkte Konvertierung von Schnittstelle{} in einen bestimmten Typ ist gemäß den Go-Sprachspezifikationen nicht zulässig. Eine Typzusicherung ist erforderlich, um diese Regeln außer Kraft zu setzen und den Wert explizit in den gewünschten Typ umzuwandeln.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich eine Schnittstelle{} sicher in ein int in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!