[解決済み] スライスを宣言するのか、スライスを作るのか?
2022-08-01 14:07:28
質問
Goでは、以下の違いは何ですか?
var s []int
と
s := make([]int, 0)
?
どちらも動作することがわかりますが、どちらが良いのでしょうか?
どのように解決するのですか?
さらに
ファブリーズ
's
答え
で、より多くの例を見ることができます。
Goスライス: 使用法と内部構造
の使用法については、" を参照してください。
[]int
を使用することが言及されています。
スライスのゼロ値なので(
nil
) のように動作します。 長さゼロのスライス を使えば、スライス変数を宣言し、ループの中でそれに追加することができます。
// Filter returns a new slice holding only
// the elements of s that satisfy f()
func Filter(s []int, fn func(int) bool) []int {
var p []int // == nil
for _, v := range s {
if fn(v) {
p = append(p, v)
}
}
return p
}
これは、スライスに追加するために、最初にメモリを確保する必要がないことを意味します。
nil
スライス
p int[]
は、追加するスライスとして十分です。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン