KATUBLO
技術のメモ
【Go】配列・スライスの要素から指定要素を削除する方法
2020-12-31

Goの配列・スライスの要素から指定要素を削除する

appendで該当する要素を除く

配列・スライスをループさせて削除対象の要素を発見したら、その要素をappend関数を使って取り除くといった方法があります。注意点としては以下のコードだと削除したい要素が2つ以上ある場合はindexが若い初めの要素しか削除されないという点にご注意ください。

package main import ( "fmt" ) func main() { t := []string{"0番目", "1番目", "2番目", "3番目", "4番目"} fmt.Println(t) n := 2 fmt.Printf("%d番目を削除\n", n) t = deleteTargetElement(t, "2番目") fmt.Println(t) } func deleteTargetElement(s []string, target string) []string { for i, ele := range s { if ele == target { return append(s[:i], s[i+1:]...) } } return s }

コードを簡単に解説するとappend(s[:i], s[i+1:]...) はs[:i]は初めの要素からi-1番目までの要素を指定、s[i+1:]はi+1の番目の要素からそれ以降を指定するという構文なので、i番目の要素を一旦取り除いて2分割した配列・スライスを再度取り付けるといったことをしています。

参考文献:

広告:

別の記事で開発の生産性やQOL(Quality of Life)を向上させる上で買って良かったものを紹介しているので良かったらみてください。