3 回答

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊
您可以將 int 轉(zhuǎn)換為字節(jié):https : //play.golang.org/p/w0uBGiYOKP
val := "7"
i, _ := strconv.Atoi(val)
byteI := byte(i)
fmt.Printf("%v (%T)", byteI, byteI)
編譯器抱怨我不能做 i.(byte)
當(dāng)然,因?yàn)檫@是一種說(shuō)法,它就會(huì)如果失敗,i是不是給定類型的(byte在你的例子),或者它不是一個(gè)接口。

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊
為了使用類型斷言(您正在這樣做),您需要在左側(cè)有一個(gè)接口。您可能會(huì)收到“左側(cè)非接口類型字節(jié)”的錯(cuò)誤 - 這是真的,因?yàn)槟呀?jīng)知道類型。相反,你應(yīng)該鑄造。
您需要使用 byte(i) 而不是 i.(byte):
i := 12
c := byte(i)
fmt.Println(c) //12
當(dāng)您的 int 超過(guò)一個(gè)字節(jié)可以容納的最大 int 時(shí)要小心;你最終會(huì)溢出字節(jié)。在這種情況下,如果超過(guò) 255(單個(gè)字節(jié)最多可以容納),就會(huì)溢出。

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊
str := "Hello"
var b byte
for i,_ := range str{
b = str[i]
fmt.Println(b)
}
- 3 回答
- 0 關(guān)注
- 144 瀏覽
添加回答
舉報(bào)