- スライスの要素削除について
MAPにはdeleteがあるものの、スライスにはそのようなものがありません。
Google検索で調べていたら、下記のコードを発見しました。
質問したいのは、unset関数のreturn append部分です。
「appendは追加する関数では?」というのが疑問です。
なぜこの書き方でスライスの削除になるのかご教示願います。
go
1package main 2 3import ( 4 "fmt" 5) 6 7func main() { 8 t := []string{"0番目","1番目","2番目","3番目","4番目"} 9 fmt.Println(t) 10 n := 2 11 fmt.Printf("%d番目を削除\n", n) 12 t = unset(t, n) 13 fmt.Println(t) 14} 15 16func unset(s []string, i int) []string { 17 if i >= len(s) { 18 return s 19 } 20 return append(s[:i], s[i+1:]...) 21}
■Go PlayGround
https://play.golang.org/p/53J04UE7dv
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/25 00:41