將 Byte Slice 轉換為 Int Slice:解決解析錯誤
在 Go 中,將 byte slice 轉換為 int 需要仔細考慮。傳統方法是將位元組切片轉換為字串,然後使用 strconv.Atoi,這種方法可能會遇到解析錯誤。
var d = []byte{0x01} val, err := strconv.Atoi(string(d))
上面的程式碼會導致錯誤,因為位元組切片包含原始位元組值(1) 而不是 ASCII 字元 (49)。
正確方法:
要將位元組切片轉換為int 切片,請執行以下操作:
byteSlice := []byte{1, 2, 3, 4} intSlice := make([]int, len(byteSlice)) for i, b := range byteSlice { intSlice[i] = int(b) }
此程式碼迭代位元組切片中的每個位元組值,將其轉換為整數。產生的 intSlice 將包含位元組值的相應整數表示。
透過理解這種細微差別,開發人員可以避免解析錯誤並在 Go 中有效地將位元組切片轉換為 int 切片。
以上是如何在 Go 中將 Byte Slice 轉換為 Int Slice 而不會出現解析錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!