ホームページ >バックエンド開発 >Golang >「make([]int, 0) 対 []int{} 対 nil: Go で空のスライスを初期化する最良の方法は何ですか?」

「make([]int, 0) 対 []int{} 対 nil: Go で空のスライスを初期化する最良の方法は何ですか?」

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-19 14:12:10417ブラウズ

`make([]int, 0) vs. []int{} vs. nil: What's the Best Way to Initialize an Empty Slice in Go?`

空のスライスを初期化する最適な方法を公開

柔軟なサイズで空のスライスを宣言する場合、次の疑問が生じます。推奨される初期化アプローチ - make([]int, 0) または[]int{}?

どちらのオプションを選択しても、意味的には同じ結果が得られます。ただし、Go 1.16 では、make([]int, 0) によって runtime.makeslice への内部呼び出しがトリガーされます。

または、nil 値を選択することもできます。

var myslice []int

で説明されているように、 Golang.org ブログによると、nil スライスは何も指していないにもかかわらず、長さ 0 のスライスのように機能します。長さはゼロで、割り当てを使用して追加できます。

ただし、nil スライスは JSON で "null" としてシリアル化され、空のスライスは "[]" としてレンダリングされることに注意してください。

@ArmanOrdookhani が明らかにしたように、選択した方法に関係なく、メモリ割り当てをトリガーするものはありません。

以上が「make([]int, 0) 対 []int{} 対 nil: Go で空のスライスを初期化する最良の方法は何ですか?」の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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