首頁  >  文章  >  後端開發  >  如何在 Go 中將 Byte Slice 轉換為 Int Slice 而不會出現解析錯誤?

如何在 Go 中將 Byte Slice 轉換為 Int Slice 而不會出現解析錯誤?

DDD
DDD原創
2024-11-23 21:25:18878瀏覽

How to Convert a Byte Slice to an Int Slice in Go Without Parsing Errors?

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

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