Goでコーディングをしていたときに、配列・スライスの要素から該当する値を削除したいという場面があり、その時書いたサンプルコードをメモとして残しておきます。
Goの配列・スライスから1番先頭の指定要素を削除する
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, "2e番目")
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
}
参考文献: