首頁 > 後端開發 > Golang > 如何在 Go 中將 []byte Slice 慣用地編碼為 int64?

如何在 Go 中將 []byte Slice 慣用地編碼為 int64?

Mary-Kate Olsen
發布: 2024-12-11 15:55:10
原創
652 人瀏覽過

How to Idiomatically Encode a []byte Slice into an int64 in Go?

在Go 中將[]byte Slice 編碼為int64 的更慣用方法

在Go 中,有多種方法來編碼[ ]byte 切片為int64。雖然提供的程式碼完成了任務,但可以對其進行最佳化以提高慣用流暢性。

原始程式碼:

var data int64
for i := 0; i < 8; i++ {
    data |= int64(mySlice[i]&byte(255)) << uint((8*8)-((i+1)*8))
}
登入後複製

改良的慣用方法:

另一種更慣用的方法是使用位移位和循環切片:

func main() {
    var mySlice = []byte{244, 244, 244, 244, 244, 244, 244, 244}
    data := int64(0)
    for _, b := range mySlice {
        data = (data << 8) | int64(b)
    }
    fmt.Printf("%d\n", data)
}
登入後複製

說明:

改進的程式碼利用位移位(>)來有效率地執行編碼。它使用範圍語法迭代切片,將資料值移動 8 位元 (

慣用方法的優點:

  • 簡潔:程式碼是明顯更短且更容易閱讀。
  • 清晰度:將位元操作操作分解為明確的步驟可以增強
  • 效能提升:位移比原來的位元運算更有效率。
  • 相容性:這種方法更符合 Go 程式設計的慣用風格。

以上是如何在 Go 中將 []byte Slice 慣用地編碼為 int64?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板