Documentation
¶
Index ¶
- type Set
- func (s Set[T]) Clone() Set[T]
- func (s Set[T]) Contains(item T) bool
- func (s Set[T]) ContainsAll(items ...T) bool
- func (s Set[T]) ContainsAny(items ...T) bool
- func (s Set[T]) Delete(items ...T) Set[T]
- func (s Set[T]) Diff(s2 Set[T]) (added, removed, remained Set[T])
- func (s Set[T]) DiffSlice(s2 Set[T]) (added, removed, remained []T)
- func (s Set[T]) DiffVary(s2 Set[T]) (added, removed Set[T])
- func (s Set[T]) DiffVarySlice(s2 Set[T]) (added, removed []T)
- func (s Set[T]) Difference(s2 Set[T]) Set[T]
- func (s Set[T]) DifferenceSlice(s2 Set[T]) []T
- func (s Set[T]) Each(f func(item T) bool)
- func (s Set[T]) Equal(s2 Set[T]) bool
- func (s Set[T]) Insert(items ...T) Set[T]
- func (s Set[T]) Intersection(s2 Set[T]) Set[T]
- func (s Set[T]) IntersectionSlice(s2 Set[T]) []T
- func (s Set[T]) IsSubset(s2 Set[T]) bool
- func (s Set[T]) IsSuperset(s2 Set[T]) bool
- func (s Set[T]) Len() int
- func (s Set[T]) List() []T
- func (s Set[T]) Merge(s2 Set[T]) Set[T]
- func (s Set[T]) Pop() (v T, ok bool)
- func (s Set[T]) Union(s2 Set[T]) Set[T]
- func (s Set[T]) UnionSlice(s2 Set[T]) []T
- func (s Set[T]) Values() iter.Seq[T]
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Set ¶
type Set[T comparable] map[T]struct{}
Set sets.Set is a set of `T`, implemented via map[T]struct{} for minimal memory consumption.
func NewFrom ¶ added in v1.0.0
func NewFrom[T comparable, V any, M ~map[T]V](m M) Set[T]
NewFrom creates a T from a keys of a map[T](? extends any). If the value passed in is not actually a map, this will panic.
func (Set[T]) ContainsAll ¶
ContainsAll returns true if and only if all items are contained in the set.
func (Set[T]) ContainsAny ¶
ContainsAny returns true if any items are contained in the set.
func (Set[T]) Diff ¶ added in v1.2.0
Diff returns s diff of s2, return added, removed, remained sets with the given s2 set. For example: s1 = {a1, a3, a5, a7} s2 = {a3, a4, a5, a6} added = {a4, a6} removed = {a1, a7} remained = {a3, a6}
func (Set[T]) DiffSlice ¶ added in v1.2.0
DiffSlice returns s diff of s2, return added, removed, remained slices with the given s2 set. For example: s1 = {a1, a3, a5, a7} s2 = {a3, a4, a5, a6} added = {a4, a6} removed = {a1, a7} remained = {a3, a6}
func (Set[T]) DiffVary ¶ added in v1.3.0
DiffVary returns s diff of s2, return added, removed sets with the given s2 set. For example: s1 = {a1, a3, a5, a7} s2 = {a3, a4, a5, a6} added = {a4, a6} removed = {a1, a7}
func (Set[T]) DiffVarySlice ¶ added in v1.3.0
DiffVarySlice returns s diff of s2, return added, removed slices with the given s2 set. For example: s1 = {a1, a3, a5, a7} s2 = {a3, a4, a5, a6} added = {a4, a6} removed = {a1, a7}
func (Set[T]) Difference ¶
Difference returns a set of objects that are not in s2 For example: s1 = {a1, a2, a3} s2 = {a1, a2, a4, a5} s1.Difference(s2) = {a3} s2.Difference(s1) = {a4, a5}.
func (Set[T]) DifferenceSlice ¶ added in v1.2.0
DifferenceSlice returns a slices of objects that are not in s2 For example: s1 = {a1, a2, a3} s2 = {a1, a2, a4, a5} s1.Difference(s2) = {a3} s2.Difference(s1) = {a4, a5}.
func (Set[T]) Each ¶
Each traverses the items in the Set, calling the provided function for each set member. Traversal will continue until all items in the Set have been visited, or if the closure returns false.
func (Set[T]) Equal ¶
Equal returns true if and only if s1 is equal (as a set) to s2. Two sets are equal if their membership is identical. (In practice, this means same elements, order doesn't matter).
func (Set[T]) Intersection ¶
Intersection returns a new set which includes the item in BOTH s1 and s2 For example: s1 = {a1, a2} s2 = {a2, a3} s1.Intersection(s2) = {a2}.
func (Set[T]) IntersectionSlice ¶ added in v1.2.0
IntersectionSlice returns a slice which includes the item in BOTH s1 and s2 For example: s1 = {a1, a2} s2 = {a2, a3} s1.Intersection(s2) = {a2}.
func (Set[T]) IsSuperset ¶
IsSuperset returns true if and only if s1 is a superset of s2.
func (Set[T]) Merge ¶
Merge is like Union, however it modifies the current set it's applied on with the given s2 set. For example: s1 = {a1, a2} s2 = {a3, a4} s1.Merge(s2), s1 = {a1, a2, a3, a4} s2.Merge(s1), s2 = {a1, a2, a3, a4}.
func (Set[T]) Union ¶
Union returns a new set which includes items in either s1 or s2. For example: s1 = {a1, a2} s2 = {a3, a4} s1.Union(s2) = {a1, a2, a3, a4} s2.Union(s1) = {a1, a2, a3, a4}.
func (Set[T]) UnionSlice ¶ added in v1.2.0
UnionSlice returns a slice which includes items in either s1 or s2. For example: s1 = {a1, a2} s2 = {a3, a4} s1.Union(s2) = {a1, a2, a3, a4} s2.Union(s1) = {a1, a2, a3, a4}.