在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 中將 []byte Slice 慣用地編碼為 int64?的詳細內容。更多資訊請關注PHP中文網其他相關文章!