Go でのコード イディオムの強化: []byte スライスを int64 に変換する
この記事の中心的な質問は、Go でより慣用的なアプローチを見つけることに焦点を当てています。 []byte スライスを int64 データ型に変換します。提供されたコードは実行可能なソリューションを提供しますが、慣用的な Go プログラミングの特徴である洗練さと効率性に欠けています。
コードの慣用句を改善するには、スライスを効果的に操作する Go の機能を活用できます。スライスを手動で繰り返してビットごとの操作を実行する代わりに、スライス内の各バイトを繰り返す単一の範囲ループを使用することでプロセスを簡素化できます。
以下の最適化されたコードは、このアプローチを示しています。
func main() { var mySlice = []byte{244, 244, 244, 244, 244, 244, 244, 244} var data int64 = 0 for _, b := range mySlice { data = (data << 8) | int64(b) } fmt.Printf("%d\n", data) }
この調整により、コードはより簡潔で読みやすくなり、Go の慣用的なスタイルとよりよく調和します。範囲ループを使用すると、ビット単位の演算が簡素化され、コード全体の明瞭さと保守性が向上します。
以上がGo で []byte スライスを int64 に慣用的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。