mirror of
https://github.com/duke-git/lancet.git
synced 2026-03-01 00:35:28 +08:00
feat: add NewSetFromSlice function for set
This commit is contained in:
@@ -10,6 +10,15 @@ func NewSet[T comparable](items ...T) Set[T] {
|
|||||||
return set
|
return set
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewSetFromSlice create a set from slice
|
||||||
|
func NewSetFromSlice[T comparable](items []T) Set[T] {
|
||||||
|
set := make(Set[T])
|
||||||
|
for _, item := range items {
|
||||||
|
set.Add(item)
|
||||||
|
}
|
||||||
|
return set
|
||||||
|
}
|
||||||
|
|
||||||
// Add items to set
|
// Add items to set
|
||||||
func (s Set[T]) Add(items ...T) {
|
func (s Set[T]) Add(items ...T) {
|
||||||
for _, v := range items {
|
for _, v := range items {
|
||||||
|
|||||||
@@ -6,6 +6,19 @@ import (
|
|||||||
"github.com/duke-git/lancet/v2/internal"
|
"github.com/duke-git/lancet/v2/internal"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func TestSet_NewSetFromSlice(t *testing.T) {
|
||||||
|
assert := internal.NewAssert(t, "TestSet_NewSetFromSlice")
|
||||||
|
|
||||||
|
s1 := NewSetFromSlice([]int{1, 2, 2, 3})
|
||||||
|
assert.Equal(3, s1.Size())
|
||||||
|
assert.Equal(true, s1.Contain(1))
|
||||||
|
assert.Equal(true, s1.Contain(2))
|
||||||
|
assert.Equal(true, s1.Contain(3))
|
||||||
|
|
||||||
|
s2 := NewSetFromSlice([]int{})
|
||||||
|
assert.Equal(0, s2.Size())
|
||||||
|
}
|
||||||
|
|
||||||
func TestSet_Add(t *testing.T) {
|
func TestSet_Add(t *testing.T) {
|
||||||
assert := internal.NewAssert(t, "TestSet_Add")
|
assert := internal.NewAssert(t, "TestSet_Add")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user