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中文網其他相關文章!