Interface{} 值转换为 Int 的类型断言
如果执行不正确,将 interface{} 值转换为 int 可能会导致错误。此转换需要类型断言。
错误说明
错误消息表明您无法将interface{}值直接转换为int,因为需要类型断言。
代码检查
中您的代码:
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.
问题出在这一行:
iAreaId := int(val)
解决方案
而不是直接转换值,您需要使用类型断言。它检查该值是否可以转换为 int,如果不能则抛出错误。有两种方法可以实现此目的:
// Panicking version iAreaId := val.(int) // Non-panicking version iAreaId, ok := val.(int) if !ok { // Handle the error case here }
通过进行此更改,您可以成功将 interface{} 值转换为 int 并继续执行代码。
以上是如何在 Go 中安全地将 interface{} 值转换为 int?的详细内容。更多信息请关注PHP中文网其他相关文章!