Go で固定サイズの配列を可変サイズの配列 (スライス) に変換する
固定サイズの配列 ( [32]byte) を次のコードを使用して可変サイズのスライス ([]byte) に変換します:
package main import ( "fmt" ) func main() { var a [32]byte b := []byte(a) fmt.Println(" %x", b) }
ただし、コンパイラはエラーを返します:
./test.go: 9: (type [32]byte) を type []byte に変換できません
このエラーは、Go では固定サイズの配列からスライスへの直接変換が許可されていないために発生します。これを解決するには、スライス演算子 ([:]) を使用して、既存の配列のスライスを取得する必要があります。
var a [32]byte b := a[:]
これにより、配列 (a) 内の要素を参照するスライス (b) が作成されます。 )。スライスには元の配列と同じバッキング配列が含まれますが、その長さと容量は動的に調整できます。
Go における配列とスライスの違いについて詳しくは、次の包括的なブログ投稿を参照してください。
[Go の配列とスライス](https://blog.golang.org/go-slices-usage-and-internals)
以上がGo で固定サイズの配列を可変サイズのスライスに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。