mirror of
https://github.com/duke-git/lancet.git
synced 2026-02-04 12:52:28 +08:00
feat:(slice add AppendIfAbsent function) (#52)
Co-authored-by: george.zheng <george.zheng@ambergroup.io>
This commit is contained in:
@@ -851,3 +851,11 @@ func ToSlice[T any](value ...T) []T {
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
// AppendIfAbsent only absent append the value
|
||||
func AppendIfAbsent[T comparable](slices []T, value T) []T {
|
||||
if !Contain(slices, value) {
|
||||
slices = append(slices, value)
|
||||
}
|
||||
return slices
|
||||
}
|
||||
|
||||
@@ -609,3 +609,11 @@ func TestToSlicePointer(t *testing.T) {
|
||||
assert.Equal([]*string{&str1}, ToSlicePointer(str1))
|
||||
assert.Equal([]*string{&str1, &str2}, ToSlicePointer(str1, str2))
|
||||
}
|
||||
|
||||
func TestToAppendIfAbsent(t *testing.T) {
|
||||
assert := internal.NewAssert(t, "TestToAppendIfAbsent")
|
||||
|
||||
str1 := []string{"a", "b"}
|
||||
assert.Equal([]string{"a", "b"}, AppendIfAbsent(str1, "a"))
|
||||
assert.Equal([]string{"a", "b", "c"}, AppendIfAbsent(str1, "c"))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user