使用類型斷言不起作用將 interface{} 轉換為 float32package mainimport ( "fmt")func main() { var i interface{} i = 1.1 num, ok := i.(float32) fmt.Println(ok) fmt.Println(num)}https://play.golang.org/p/iEJWLbBCHs8這將打印 false 和 0。如何將 interface{} 轉換為 float32?
2 回答

慕運維8079593
TA貢獻1876條經驗 獲得超5個贊
當代碼運行時:
i = 1.1
它為變量分配一個值 ;這是 Go 中十進制數文本的默認類型。當您嘗試將其轉換為 時,它會失敗,因為這不是 的基礎類型。float64
i
float32
i
如果要轉換為 ,則需要在其中輸入一個值:i
float32
float32
i = float32(1.1)
轉換將成功。如果希望能夠轉換為 或 ,則可以嘗試轉換為這兩種類型,如果轉換為成功,則將結果轉換為 。float32
float64
float64
float32

呼啦一陣風
TA貢獻1802條經驗 獲得超6個贊
要回答您的問題:
如何將 interface{} 轉換為 float32?
一點也不。
你所能做的就是在接口{}中存儲一個 float32,然后再次鍵入斷言它。代碼的問題在于您不存儲 float32。
- 2 回答
- 0 關注
- 98 瀏覽
添加回答
舉報
0/150
提交
取消