Go で []byte スライスを 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 スライスを int64 に慣用的にエンコードする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。