首頁 >後端開發 >Golang >如何在 Go 中安全地將 interface{} 轉換為 int?

如何在 Go 中安全地將 interface{} 轉換為 int?

Susan Sarandon
Susan Sarandon原創
2024-12-12 13:53:10688瀏覽

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

將Interface{} 轉換為Int

從JSON 中提取值並嘗試將其轉換為整數時,可能會遇到錯誤表明interface{}不能直接轉換為int。要解決此問題,需要進行類型斷言。

在提供的程式碼範例中,以下行:

iAreaId := int(val)

會導致錯誤,因為 val 是一個 interface{},無法直接轉換至 int。相反,型別斷言是必要的:

iAreaId := val.(int)

此型別斷言強制將 val 的值強制轉換為 int。或者,您可以使用非恐慌版本:

iAreaId, ok := val.(int)

透過包含 ok 變量,您可以在繼續之前檢查斷言是否成功。

此外,需要注意的是只有當來源和目標的底層類型相容時(如 Go 語言規範所定義),才能執行明確轉換。

以上是如何在 Go 中安全地將 interface{} 轉換為 int?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn