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

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

Susan Sarandon
リリース: 2024-11-08 11:39:02
オリジナル
573 人が閲覧しました

How to Convert a Fixed-Size Array to a Variable-Sized Slice in Go?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート