ホームページ >バックエンド開発 >Golang >Go スライスを固定サイズの配列に変換するにはどうすればよいですか?

Go スライスを固定サイズの配列に変換するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-26 00:18:11392ブラウズ

How to Convert a Go Slice to a Fixed-Sized Array?

スライスを固定サイズの配列に変換する

Go でスライスと固定サイズの配列を操作する場合、実行方法を理解することが重要ですそれらの間の変換。これは、固定サイズの配列を必要とする外部ライブラリまたはインターフェイスを操作する必要がある場合に特に便利です。

この問題は、スライスを異なるサイズの配列に直接割り当てようとすると発生します。提供された例に示すように、これにより型不一致エラーが発生します。

スライスを固定サイズの配列に変換するには、「コピー」関数を使用できます。この関数は、宛先配列とソース スライスの 2 つの引数を取ります。これは、コピー元スライスの内容をコピー先の配列に、長さの最小値までコピーします。

例:

slice := []byte("abcdefgh")
var arr [4]byte

copy(arr[:], slice[:4])

fmt.Println(arr)
// Output: [97 98 99 100]

ここでは、copy 関数を使用して最初のスライスをコピーします。スライスから arr 配列への 4 バイト。ソース スライスは宛先配列よりも大きいため、最初の 4 バイトのみがコピーされます。

もう 1 つの方法は、ソース スライスの長さを指定せずに copy 関数を使用することです。これにより、ソース スライス全体が宛先配列に自動的にコピーされます。

copy(arr[:], slice)

fmt.Println(arr)
// Output: [97 98 99 100]

要約すると、copy 関数を使用すると、Go でスライスを固定サイズの配列に変換するための信頼性が高く効率的な方法が提供されます。配列には、スライスからの要素の目的のサブセットが含まれます。

以上がGo スライスを固定サイズの配列に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。