Go 1.21에서 추가된 slice 의 기능
Contains
ex 슬라이스에 value 가 있는지 확인하고, 존재하면 true 를 반환한다.
//추가된 기능
ex := []string{"A", "B", "C"}
ok := slices.Contains(ex, "B")
fmt.Sprintf("%t", ok) // true
//이전 기능
func contains(slice []string, key string) bool {
ex := make(map[string]struct{}, len(slice))
for _, s := range slice {
ex[s] = struct{}{}
}
_, ok := m[key]
return ok
}
Insert
ex 슬라이스 내의 i 위치에 value 를 추가하고 반환한다.
//추가된 기능
ex := []string{"A", "B", "C"}
ex = slices.Insert(ex, len(ex), "D")
fmt.Sprintf("%v", ex) // [A B C D]
//이전 기능
ex := []string{"A", "B", "C"}
m = append(ex, "D")
fmt.Sprintf("%v", m) //[A B C D]
Delete
ex 슬라이스 내에 있는 요소를 i 에서 j 위치까지 삭제하고 반환한다.
//추가된 기능
//ex[A B C D]
ex = slices.Delete(ex, len(ex)-1, len(ex))
fmt.Sprintf("%v", ex) // [A B C]
//이전 기능
ex = append(ex[:len(ex)-1], ex[len(ex):]...)
fmt.Sprintf("%v", ex) // [A B C]