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

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

Mary-Kate Olsen
リリース: 2024-12-19 14:12:10
オリジナル
371 人が閲覧しました

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

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