Home >Backend Development >Golang >How to Safely Convert interface{} to int in Go?
When fetching data from JSON and attempting to cast it to an integer, you may encounter an error stating that you cannot convert an interface{} to an int. This error occurs due to Go's type-assertion rules.
In your code, you have the following line:
iAreaId := int(val)
This line attempts to convert the val, which has the type interface{}, to an int using a type cast. However, type casting an interface{} to an int is not allowed.
To resolve this issue, you need to use a type assertion instead:
iAreaId := val.(int)
A type assertion extracts the underlying value from the interface{} if it has the declared type. If the value does not have the declared type, the type assertion will panic.
Alternatively, you can use a non-panicking version of type assertion using a second return value:
iAreaId, ok := val.(int)
The ok variable will be true if the type assertion was successful and false if it was unsuccessful.
By using a type assertion correctly, you can successfully convert an interface{} to an int in Go.
The above is the detailed content of How to Safely Convert interface{} to int in Go?. For more information, please follow other related articles on the PHP Chinese website!