MENU

【3分で理解する】golangのスライスに要素を追加するappend関数の使い方 遅さには注意

本ページではアフィリエイトリンク(PR)が含まれています

今回はgolangにおけるappend関数の使い方や注意点について解説していきます。

目次

append関数とは

append関数とはスライスに要素を追加する際に用いる関数です。

スライスについては以前に以下の記事で解説しているので、先に目を通していただくと理解がより深まるかと思います。

あわせて読みたい
【3分で理解する】golangのスライスとは 使い方、注意点について解説 今回はgolangにおけるスライスについて解説していきます。 【スライスとは】 golangにはSlice(スライス)というデータ構造があり、他の言語でいう配列と似ていますが、微...

appendは追記する、付け加えるという意味があり、その意味の通りスライスに要素を付け加えるという関数です。

append関数の使い方

実際にコードを用意したので見てみましょう。

	a := []int{1, 2, 3, 4, 5}
	a = append(a, 10, 20)
	fmt.Println(a)

要素1,2,3,4,5というint型のスライスaがあります。こちらに新たに要素を加えていきましょう。

append()の最初の引数には追加元のスライスを渡してあげる必要があります。その後の引数は入れてあげたいint型の値を記載します。

これによりaの中身を出力するPrintln()の結果は[1 2 3 4 5 10 20]と出力され、スライスaに10,20が追加されました。

append関数の注意点

append関数は便利な関数ではありますが、いくつか注意点があります。

パフォーマンスを気にすること

appendはスライスの要素数を拡張します。

その際、スライスのキャパシティを確認し、容量を確保して要素を追加します。スライスの宣言時にキャパシティも定義できますが、それ以上の要素を追加しようとするとコストがかかります。

スライスのキャパシティについては以下の記事で解説していますので、気になる方はご覧ください。

あわせて読みたい
【3分で理解する】golangのスライスのmakeとcapについて 使い方、注意点について解説 前回、golangのスライスについて解説しました。 https://cityofnogales.net/go-slice/ 今回はそのスライスの中で用いられるmakeとcapについて解説していきます。 【スラ...

そのためfor文などを使用してキャパシティを増やしていくのはパフォーマンス的に悪いため、事前に必要な要素数や最大量が分かっている場合make関数を使ってあらかじめキャパシティを指定するのが効率が良いといえます。

以下のように要素数が増えていくスライスを使う場合は、あらかじめ大きめのキャパシティを指定して、メモリを確保しておきましょう。

a := make([]int, 0, 100)

golangをもっと詳しくなりたい方に

golang学習のために筆者が実際に受講したUdemy教材をまとめています。

あわせて読みたい
【入門】golangの学習におすすめのUdemy教材5選 これから業務でgolangを使うことになった方、これからgolangを使ってキャリアを歩んでいきたいという方でどのように学習していこうか悩んでいる方もいるかと思います。 ...

golang学習のために筆者が実際に読んでおすすめしたい本をまとめています。

あわせて読みたい
【入門】golangの学習におすすめの本/書籍7選 これから業務でgolangを使うことになった方、これからgolangを使ってキャリアを歩んでいきたいという方でどのように学習していこうか悩んでいる方もいるかと思います。 ...
タメになったらシェアお願いします!
  • URLをコピーしました!
  • URLをコピーしました!
目次