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

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

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-24 17:16:16590瀏覽

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

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