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

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

Mary-Kate Olsen
發布: 2024-12-24 17:16:16
原創
588 人瀏覽過

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

在Go 中將interface{} 轉換為int

從JSON 取得資料並嘗試將其轉換為整數時,可能會遇到錯誤,指出無法轉換int 的介面{}。此錯誤是由於 Go 的類型斷言規則而發生的。

在您的程式碼中,您有以下行:

iAreaId := int(val)
登入後複製

此行嘗試轉換具有類型 interface{ 的 val },使用類型轉換轉換為 int。但是,不允許將 interface{} 類型轉換為 int。

要解決此問題,您需要使用類型斷言:

iAreaId := val.(int)
登入後複製

類型斷言提取底層來自介面{}的值(如果它具有聲明的類型)。如果該值沒有聲明的類型,則類型斷言將發生恐慌。

或者,您可以使用第二個傳回值來使用類型斷言的非恐慌版本:

iAreaId, ok := val.(int)
登入後複製

如果類型斷言成功,則ok 變數將為true;如果類型斷言不成功,則ok 變數將為false。

透過正確使用型別斷言,您可以在 Go 中成功將 interface{} 轉換為 int。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板