Date: Fri, 29 Mar 2024 20:27:16 +0800 (CST) Message-ID: <1552008205.1206.1711715236543@localhost.localdomain> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_1205_96027336.1711715236543" ------=_Part_1205_96027336.1711715236543 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
=E4=BB=A5=E4=B8=8B=E5=B8=B8=E7=94=A8=E6=96=B9=E6=B3=95=E5=88=97=E8=A1=A8= =EF=BC=8C=E6=96=87=E6=A1=A3=E6=9B=B4=E6=96=B0=E5=8F=AF=E8=83=BD=E6=BB=9E=E5= =90=8E=E4=BA=8E=E4=BB=A3=E7=A0=81=E6=96=B0=E7=89=B9=E6=80=A7=EF=BC=8C=E6=9B= =B4=E5=A4=9A=E7=9A=84=E6=96=B9=E6=B3=95=E5=8F=8A=E7=A4=BA=E4=BE=8B=E8=AF=B7= =E5=8F=82=E8=80=83=E4=BB=A3=E7=A0=81=E6=96=87=E6=A1=A3=EF=BC=9Ahttps://pkg.go.dev/github.com/gogf/gf/v2/container/gs= et
=E8=BF=99=E9=87=8C=E4=BB=A5StrSet
=E7=B1=BB=E5=9E=8B=E4=BB=
=8B=E7=BB=8D=E6=96=B9=E6=B3=95=E4=BD=BF=E7=94=A8=EF=BC=8C=E5=85=B6=E4=BB=96=
=E9=9B=86=E5=90=88=E7=B1=BB=E5=9E=8B=E7=9A=84=E6=96=B9=E6=B3=95=E4=B8=8E=E6=
=AD=A4=E7=B1=BB=E4=BC=BC=EF=BC=8C=E4=B8=8D=E5=86=8D=E8=B5=98=E8=BF=B0=E3=80=
=82
NewStrSet
NewStrSet
=E5=88=9B=E5=BB=BA=E5=
=B9=B6=E8=BF=94=E5=9B=9E=E4=B8=80=E4=B8=AA=E7=A9=BA=E7=9A=84=E9=9B=86=E5=90=
=88=EF=BC=8C=E5=85=B6=E4=B8=AD=E5=8C=85=E5=90=AB=E6=B2=A1=E6=9C=89=E9=87=8D=
=E5=A4=8D=E5=AD=97=E7=AC=A6=E4=B8=B2=E7=9A=84=E6=95=B0=E6=8D=AE=E3=80=82safe
=E7=
=94=A8=E4=BA=8E=E6=8C=87=E5=AE=9A=E6=98=AF=E5=90=A6=E5=9C=A8=E5=B9=B6=E5=8F=
=91=E5=AE=89=E5=85=A8=E4=B8=AD=E4=BD=BF=E7=94=A8=EF=BC=8C=E9=BB=98=E8=AE=A4=
=E6=83=85=E5=86=B5=E4=B8=8B=E6=98=AFfalse
=E3=80=82= =E6=A0=BC=E5=BC=8F=EF=BC=9A
func NewStrSet(safe ...bool) *St= rSet
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleNewStrSet() { =09strSet :=3D gset.NewStrSet(true) =09strSet.Add([]string{"str1", "str2", "str3"}...) =09fmt.Println(strSet.Slice()) =09// May Output: =09// [str3 str1 str2] }
NewStrSetFrom
NewStrSetFrom
=E9=80=9A=E8=BF=87=
=E7=BB=99=E5=AE=9A=E7=9A=84=E6=95=B0=E7=BB=84=E5=88=9B=E5=BB=BA=E9=9B=86=E5=
=90=88=E9=9B=86=E5=90=88=E3=80=82=E5=
=8F=82=E6=95=B0safe
=E7=94=A8=E4=BA=8E=E6=8C=87=E5=AE=9A=E6=98=
=AF=E5=90=A6=E5=9C=A8=E5=B9=B6=E5=8F=91=E5=AE=89=E5=85=A8=E4=B8=AD=E4=BD=BF=
=E7=94=A8=EF=BC=8C=E9=BB=98=E8=AE=A4=E6=83=85=E5=86=B5=E4=B8=8B=E6=98=AF=E6=A0=BC=E5=BC=8F=EF=BC=9A
func NewStrSetFrom(items []strin= g, safe ...bool) *StrSet
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleNewStrSetFrom() { =09strSet :=3D gset.NewStrSetFrom([]string{"str1", "str2", "str3"}, true) =09fmt.Println(strSet.Slice()) =09// May Output: =09// [str1 str2 str3] }
Add
Add
=E6=B7=BB=E5=8A=A0=E4=B8=80=
=E4=B8=AA=E6=88=96=E5=A4=9A=E4=B8=AA=E5=85=83=E7=B4=A0=E9=A1=B9=E5=88=B0=E9=
=9B=86=E5=90=88=E4=B8=AD=E3=80=82=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) Add(item ...s= tring)
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_Add() { =09strSet :=3D gset.NewStrSetFrom([]string{"str1", "str2", "str3"}, true) =09strSet.Add("str") =09fmt.Println(strSet.Slice()) =09fmt.Println(strSet.AddIfNotExist("str")) =09// Mya Output: =09// [str str1 str2 str3] =09// false }
AddIfNotExist
Addifnotexist
=E6=A3=80=E6=9F=A5=
=E9=9B=86=E5=90=88=E4=B8=AD=E6=98=AF=E5=90=A6=E5=AD=98=E5=9C=A8=E6=8C=87=E5=
=AE=9A=E5=85=83=E7=B4=A0=E9=A1=B9item
=EF=BC=8C=E5=A6=82=E6=9E=
=9C=E4=B8=8D=E5=AD=98=E5=9C=A8=E5=88=99=E5=B0=86item
=E6=B7=BB=
=E5=8A=A0=E5=88=B0=E9=9B=86=E5=90=88=E4=B8=AD=E5=B9=B6=E8=BF=94=E5=9B=9Efalse
=E3=80=82=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) AddIfNotExist= (item string) bool
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_AddIfNotExist= () { =09strSet :=3D gset.NewStrSetFrom([]string{"str1", "str2", "str3"}, true) =09strSet.Add("str") =09fmt.Println(strSet.Slice()) =09fmt.Println(strSet.AddIfNotExist("str")) =09// Mya Output: =09// [str str1 str2 str3] =09// false }
AddIfNotExistFunc
AddIfNotExistFunc
=E6=A3=80=E6=9F=A5=E9=9B=86=E5=90=88=E4=B8=AD=E5=AD=98=E5=9C=A8=E6=8C=87=E5=AE=9A=E5=85=83=E7=B4=A0=E9=A1=B9item=
=EF=BC=8C=E5=A6=82=E6=9E=9C=E4=B8=8D=E5=AD=98=E5=9C=A8=E5=B9=B6=E4=
=B8=94=E6=96=B9=E6=B3=95f
=E8=BF=94=E5=9B=9Etrue
=
=E6=97=B6=EF=BC=8C=E5=88=99=E5=B0=86item
=E8=AE=BE=E7=BD=AE=E5=
=88=B0=E9=9B=86=E5=90=88=E4=B8=AD=E5=B9=B6=E8=BF=94=E5=9B=9Etrue=EF=BC=8C=E5=90=A6=E5=88=99=E4=BB=80=E4=B9=88=E4=B9=9F=E4=B8=8D=E5=81=9A=
=E5=B9=B6=E8=BF=94=E5=9B=9Efalse
=E3=80=82
=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) AddIfNotExist= Func(item string, f func() bool) bool
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_AddIfNotExist= Func() { =09strSet :=3D gset.NewStrSetFrom([]string{"str1", "str2", "str3"}, true) =09strSet.Add("str") =09fmt.Println(strSet.Slice()) =09fmt.Println(strSet.AddIfNotExistFunc("str5", func() bool { =09=09return true =09})) =09// May Output: =09// [str1 str2 str3 str] =09// true }
AddIfNotExistFuncLock
AddifnotExistFuncLock
=E4=B8=8EAddIfNotExistFunc
=E7=B1=
=BB=E4=BC=BC=EF=BC=8C=E4=B8=8D=E8=BF=87=E5=BD=93=E5=A4=9A=E4=B8=AAgor=
outine
=E5=90=8C=E6=97=B6=E8=B0=83=E7=94=A8AddifnotExistFuncLoc=
k
=E6=96=B9=E6=B3=95=E6=97=B6=EF=BC=8C=E5=86=85=E9=83=A8=E4=BD=BF=E7=
=94=A8=E5=B9=B6=E5=8F=91=E5=AE=89=E5=85=A8=E9=94=81=E6=9C=BA=E5=88=B6=E4=BF=
=9D=E8=AF=81=E5=90=8C=E6=97=B6=E5=8F=AA=E8=83=BD=E4=B8=80=E4=B8=AAgor=
outine
=E6=89=A7=E8=A1=8C=E3=80=82=E8=AF=A5=E6=96=B9=E6=B3=95=E5=8F=
=AA=E6=9C=89=E5=9C=A8=E5=88=9B=E5=BB=BA=E9=9B=86=E5=90=88=E6=97=B6=E7=9A=84=
safe
=E5=8F=82=E6=95=B0=E8=AE=BE=E7=BD=AEtrue
=E6=
=97=B6=E6=9C=89=E6=95=88=EF=BC=8C=E5=90=A6=E5=88=99=E8=A1=A8=E7=8E=B0=E5=92=
=8C=E6=96=B9=E6=B3=95=E4=B8=80=E8=87=B4AddIfNotExistFunc
=E3=80=
=82=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) AddIfNotExist= FuncLock(item string, f func() bool) bool
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_AddIfNotExist= FuncLock() { =09strSet :=3D gset.NewStrSetFrom([]string{"str1", "str2", "str3"}, true) =09strSet.Add("str") =09fmt.Println(strSet.Slice()) =09fmt.Println(strSet.AddIfNotExistFuncLock("str4", func() bool { =09=09return true =09})) =09// May Output: =09// [str1 str2 str3 str] =09// true }
Clear
Clear
=E5=88=A0=E9=99=A4=E9=9B=86=E5=90=88=E7=9A=84=E6=89=80=E6=9C=
=89=E5=85=83=E7=B4=A0=E9=A1=B9=E3=80=82=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) Clear()
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_Clear() { =09strSet :=3D gset.NewStrSetFrom([]string{"str1", "str2", "str3"}, true) =09fmt.Println(strSet.Size()) =09strSet.Clear() =09fmt.Println(strSet.Size()) =09// Output: =09// 3 =09// 0 }
Intersect
Intrersect
=E6=89=A7=E8=A1=8C=E9=9B=86=E5=90=88set
=E4=
=B8=8Eothers
=E7=9A=84=E4=BA=A4=E9=9B=86=EF=BC=8C=E5=B9=B6=E8=
=BF=94=E5=9B=9E=E4=B8=80=E4=B8=AA=E6=96=B0=E7=9A=84=E9=9B=86=E5=90=88=
newSet
=EF=BC=8C=E5=9C=A8newSet
=E4=B8=AD=E7=9A=84=E5=85=
=83=E7=B4=A0=E9=A1=B9=E5=90=8C=E6=97=B6=E5=AD=98=E5=9C=A8=E4=BA=8E=E9=9B=86=
=E5=90=88set
=E4=B8=8Eothers
=E4=B8=AD=E3=80=82=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) Intersect(oth= ers ...*StrSet) (newSet *StrSet)
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_Intersect() { =09s1 :=3D gset.NewStrSet(true) =09s1.Add([]string{"a", "b", "c"}...) =09var s2 gset.StrSet =09s2.Add([]string{"a", "b", "c", "d"}...) =09fmt.Println(s2.Intersect(s1).Slice()) =09// May Output: =09// [c a b] }
Diff
Diff
=E6=89=A7=E8=A1=8C=E9=9B=86=E5=90=88set
=E4=B8=8E=
newSet
=E3=80=82=E5=9C=A8newSet
=E4=B8=AD=E7=9A=84=E5=85=
=83=E7=B4=A0=E9=A1=B9=E5=AD=98=E5=9C=A8=E4=BA=8Eset
=E4=BD=86=
=E4=B8=8D=E5=AD=98=E5=9C=A8=E4=BA=8E=E9=9B=86=E5=90=88others
=
=E3=80=82=E6=B3=A8=E6=84=8F=EF=BC=8C=E5=8F=82=E6=95=B0others
=
=E5=8F=AF=E4=BB=A5=E6=8C=87=E5=AE=9A=E5=A4=9A=E4=B8=AA=E9=9B=86=E5=90=88=E5=
=8F=82=E6=95=B0=E3=80=82=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) Diff(others .= ..*StrSet) (newSet *StrSet)
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_Diff() { =09s1 :=3D gset.NewStrSetFrom([]string{"a", "b", "c"}, true) =09s2 :=3D gset.NewStrSetFrom([]string{"a", "b", "c", "d"}, true) =09fmt.Println(s2.Diff(s1).Slice()) =09// Output: =09// [d] }
Union
union
=E6=89=A7=E8=A1=8C=E9=9B=
=86=E5=90=88set
=E4=B8=8Eothers
=E7=9A=84=E5=B9=B6=
=E9=9B=86=E6=93=8D=E4=BD=9C=EF=BC=8C=E5=B9=B6=E8=BF=94=E5=9B=9E=E4=B8=80=E4=
=B8=AA=E6=96=B0=E7=9A=84=E9=9B=86=E5=90=88newSet
=E3=80=82=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) Union(others = ...*StrSet) (newSet *StrSet)
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_Union() { =09s1 :=3D gset.NewStrSet(true) =09s1.Add([]string{"a", "b", "c", "d"}...) =09s2 :=3D gset.NewStrSet(true) =09s2.Add([]string{"a", "b", "d"}...) =09fmt.Println(s1.Union(s2).Slice()) =09// May Output: =09// [a b c d] }
Complement
Complement
=E6=89=A7=E8=A1=8Cset
=E4=B8=8Efull=E7=9A=84=E8=A1=A5=E9=9B=86=E6=93=8D=E4=BD=9C=EF=BC=8C=E5=B9=B6=E8=BF=94=
=E5=9B=9E=E4=B8=80=E4=B8=AA=E6=96=B0=E9=9B=86=E5=90=88newSet
=
=E3=80=82
=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) Complement(fu= ll *StrSet) (newSet *StrSet)
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_Complement() = { =09strSet :=3D gset.NewStrSetFrom([]string{"str1", "str2", "str3", "str4", = "str5"}, true) =09s :=3D gset.NewStrSetFrom([]string{"str1", "str2", "str3"}, true) =09fmt.Println(s.Complement(strSet).Slice()) =09// May Output: =09// [str4 str5] }
Contains
Contains
=E5=8C=85=E5=90=AB=E6=A3=80=E6=9F=A5=E9=9B=86=E6=98=AF=E5=
=90=A6=E5=8C=85=E5=90=ABitem
=E3=80=82=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) Contains(item= string) bool
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_Contains() { =09var set gset.StrSet =09set.Add("a") =09fmt.Println(set.Contains("a")) =09fmt.Println(set.Contains("A")) =09// Output: =09// true =09// false }
ContainsI
ContainsI
=E6=96=B9=E6=B3=95=E7=B1=BB=E4=BC=BC=E4=BA=8EContain=
s
=EF=BC=8C=E5=8F=AA=E6=98=AF=E5=AE=83=E4=B8=8D=E5=8C=BA=E5=88=86=E5=
=A4=A7=E5=B0=8F=E5=86=99=E6=AF=94=E8=BE=83=E5=A4=A7=E5=B0=8F=E3=80=82=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) ContainsI(ite= m string) bool
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_ContainsI() { =09var set gset.StrSet =09set.Add("a") =09fmt.Println(set.ContainsI("a")) =09fmt.Println(set.ContainsI("A")) =09// Output: =09// true =09// true }
Equal
Equal
=E6=A3=80=E6=9F=A5=E4=B8=A4=E4=B8=AA=E9=9B=86=E5=90=88=E6=98=
=AF=E5=90=A6=E5=AE=8C=E5=85=A8=E7=9B=B8=E7=AD=89=EF=BC=88=E5=8C=85=E6=8B=AC=
=E5=A4=A7=E5=B0=8F=E4=BB=A5=E5=8F=8A=E5=85=83=E7=B4=A0=E9=A1=B9=EF=BC=89=E3=
=80=82=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) Equal(other *= StrSet) bool
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_Equal() { =09s1 :=3D gset.NewStrSetFrom([]string{"a", "b", "c"}, true) =09s2 :=3D gset.NewStrSetFrom([]string{"a", "b", "c", "d"}, true) =09fmt.Println(s2.Equal(s1)) =09s3 :=3D gset.NewStrSetFrom([]string{"a", "b", "c"}, true) =09s4 :=3D gset.NewStrSetFrom([]string{"a", "b", "c"}, true) =09fmt.Println(s3.Equal(s4)) =09// Output: =09// false =09// true }
IsSubSetOf
IsSumSetOf
=E6=A3=80=E6=9F=A5=E5=
=BD=93=E5=89=8D=E9=9B=86=E5=90=88set
=E6=98=AF=E5=90=A6=E6=98=
=AF=E6=8C=87=E5=AE=9A=E9=9B=86=E5=90=88other
=E7=9A=84=E5=AD=90=
=E9=9B=86=E3=80=82=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) IsSubsetOf(ot= her *StrSet) bool
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_IsSubsetOf() = { =09s1 :=3D gset.NewStrSet(true) =09s1.Add([]string{"a", "b", "c", "d"}...) =09var s2 gset.StrSet =09s2.Add([]string{"a", "b", "d"}...) =09fmt.Println(s2.IsSubsetOf(s1)) =09// Output: =09// true }
Iterator
Iterator
=E8=BF=AD=E4=BB=A3=E5=99=A8=E9=80=9A=E8=BF=87=E7=BB=99=E5=
=AE=9A=E7=9A=84=E5=9B=9E=E8=B0=83=E5=87=BD=E6=95=B0f
=E9=9A=8F=
=E6=9C=BA=E9=81=8D=E5=8E=86=E5=BD=93=E5=89=8D=E9=9B=86=E5=90=88set=EF=BC=8C=E5=A6=82=E6=9E=9C=E6=96=B9=E6=B3=95f
=E8=BF=94=E5=
=9B=9Etrue
=EF=BC=8C=E5=88=99=E7=BB=A7=E7=BB=AD=E9=81=8D=E5=8E=
=86=EF=BC=8C=E5=90=A6=E5=88=99=E5=81=9C=E6=AD=A2=E3=80=82
=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) Iterator(f fu= nc(v string) bool)
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_Iterator() { =09s1 :=3D gset.NewStrSet(true) =09s1.Add([]string{"a", "b", "c", "d"}...) =09s1.Iterator(func(v string) bool { =09=09fmt.Println("Iterator", v) =09=09return true =09}) =09// May Output: =09// Iterator a =09// Iterator b =09// Iterator c =09// Iterator d }
Join
Join
=E5=B0=86=E9=9B=86=E5=90=
=88=E4=B8=AD=E7=9A=84=E5=85=83=E7=B4=A0=E9=A1=B9=E9=80=9A=E8=BF=87=E5=AD=97=
=E7=AC=A6=E4=B8=B2glue
=E6=8B=BC=E6=8E=A5=E6=88=90=E6=96=B0=E7=
=9A=84=E5=AD=97=E7=AC=A6=E4=B8=B2=E8=BF=94=E5=9B=9E=E3=80=82=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) Join(glue str= ing) string
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_Join() { =09s1 :=3D gset.NewStrSet(true) =09s1.Add([]string{"a", "b", "c", "d"}...) =09fmt.Println(s1.Join(",")) =09// May Output: =09// b,c,d,a }
LockFunc
LockFunc
=E4=BB=85=E5=9C=A8=E5=
=B9=B6=E5=8F=91=E5=AE=89=E5=85=A8=E5=9C=BA=E6=99=AF=E4=B8=8B=E6=9C=89=E7=94=
=A8=EF=BC=8C=E8=AF=A5=E6=96=B9=E6=B3=95=E9=80=9A=E8=BF=87=E5=86=99=E9=94=81=
=E9=94=81=E5=AE=9A=E9=9B=86=E5=90=88set
=EF=BC=8C=E5=B9=B6=E6=
=89=A7=E8=A1=8C=E5=9B=9E=E8=B0=83=E6=96=B9=E6=B3=95f
=E3=80=82<=
/li>
=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) LockFunc(f fu= nc(m map[string]struct{}))
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_LockFunc() { =09s1 :=3D gset.NewStrSet(true) =09s1.Add([]string{"1", "2"}...) =09s1.LockFunc(func(m map[string]struct{}) { =09=09m["3"] =3D struct{}{} =09}) =09fmt.Println(s1.Slice()) =09// May Output =09// [2 3 1] }
RLockFunc
RLockFunc
=E4=BB=85=E5=9C=A8=E5=
=B9=B6=E5=8F=91=E5=AE=89=E5=85=A8=E5=9C=BA=E6=99=AF=E4=B8=8B=E6=9C=89=E7=94=
=A8=EF=BC=8C=E8=AF=A5=E6=96=B9=E6=B3=95=E9=80=9A=E8=BF=87=E8=AF=BB=E9=94=81=
=E9=94=81=E5=AE=9A=E9=9B=86=E5=90=88set
=EF=BC=8C=E5=B9=B6=E6=
=89=A7=E8=A1=8C=E5=9B=9E=E8=B0=83=E6=96=B9=E6=B3=95f
=E3=80=82<=
/li>
=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) RLockFunc(f f= unc(m map[string]struct{}))
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_RLockFunc() { =09s1 :=3D gset.NewStrSet(true) =09s1.Add([]string{"a", "b", "c", "d"}...) =09s1.RLockFunc(func(m map[string]struct{}) { =09=09fmt.Println(m) =09}) =09// Output: =09// map[a:{} b:{} c:{} d:{}] }
Merge
Merge
=E5=B0=86=E9=9B=86=E5=90=
=88others
=E4=B8=AD=E7=9A=84=E6=89=80=E6=9C=89=E5=85=83=E7=B4=
=A0=E9=A1=B9=E5=90=88=E5=B9=B6=E5=88=B0set
=E4=B8=AD=E3=80=82=
li>
=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) Merge(others = ...*StrSet) *StrSet
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_Merge() { =09s1 :=3D gset.NewStrSet(true) =09s1.Add([]string{"a", "b", "c", "d"}...) =09s2 :=3D gset.NewStrSet(true) =09fmt.Println(s1.Merge(s2).Slice()) =09// May Output: =09// [d a b c] }
Pop
Pop
=E9=9A=8F=E6=9C=BA=E4=BB=8E=
=E9=9B=86=E5=90=88=E4=B8=AD=E5=8F=96=E5=87=BA=E4=B8=80=E4=B8=AA=E5=85=83=E7=
=B4=A0=E9=A1=B9=E3=80=82=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) Pop() string<= /pre>
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_Pop() { =09s1 :=3D gset.NewStrSet(true) =09s1.Add([]string{"a", "b", "c", "d"}...) =09fmt.Println(s1.Pop()) =09// May Output: =09// a }
Pops
Pops
=E4=BB=8E=E9=9B=86=E5=90=88=E4=B8=AD=E9=9A=8F=E6=9C=BA=E5=BC=B9=
=E5=87=BAsize
=E4=B8=AA=E5=85=83=E7=B4=A0=E9=A1=B9=E3=80=82=E5=
=A6=82=E6=9E=9Csize =3D=3D -1
=EF=BC=8C=E5=88=99=E8=BF=94=E5=9B=
=9E=E6=89=80=E6=9C=89=E5=85=83=E7=B4=A0=E9=A1=B9=E3=80=82=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) Pops(size int= ) []string
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_Pops() { =09s1 :=3D gset.NewStrSet(true) =09s1.Add([]string{"a", "b", "c", "d"}...) =09for _, v :=3D range s1.Pops(2) { =09=09fmt.Println(v) =09} =09// May Output: =09// a =09// b }
Remove
Remove
=E4=BB=8E=E9=9B=86=E5=90=
=88=E4=B8=AD=E5=88=A0=E9=99=A4=E6=8C=87=E5=AE=9A=E7=9A=84=E5=85=83=E7=B4=A0=
=E9=A1=B9item
=E3=80=82=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) Remove(item s= tring)
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_Remove() { =09s1 :=3D gset.NewStrSet(true) =09s1.Add([]string{"a", "b", "c", "d"}...) =09s1.Remove("a") =09fmt.Println(s1.Slice()) =09// May Output: =09// [b c d] }
Size
Size
=E8=BF=94=E5=9B=9E=E9=9B=86=
=E5=90=88=E7=9A=84=E5=A4=A7=E5=B0=8F=E3=80=82=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) Size() int
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_Size() { =09s1 :=3D gset.NewStrSet(true) =09s1.Add([]string{"a", "b", "c", "d"}...) =09fmt.Println(s1.Size()) =09// Output: =09// 4 }
Silce
Slice
=E5=B0=86=E9=9B=86=E5=90=
=88=E4=B8=AD=E7=9A=84=E5=85=83=E7=B4=A0=E9=A1=B9=E4=BB=A5slice
=
=E7=9A=84=E5=BD=A2=E5=BC=8F=E8=BF=94=E5=9B=9E=E3=80=82=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) Slice() []str= ing
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_Slice() { =09s1 :=3D gset.NewStrSet(true) =09s1.Add([]string{"a", "b", "c", "d"}...) =09fmt.Println(s1.Slice()) =09// May Output: =09// [a,b,c,d] }
String
String
=E5=B0=86=E9=9B=86=E5=90=
=88=E6=8C=89=E7=85=A7=E5=AD=97=E7=AC=A6=E4=B8=B2=E8=BF=94=E5=9B=9E=E3=80=82=
=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) String() stri= ng
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_String() { =09s1 :=3D gset.NewStrSet(true) =09s1.Add([]string{"a", "b", "c", "d"}...) =09fmt.Println(s1.String()) =09// May Output: =09// "a","b","c","d" }
Sum
Sum
=E5=B0=86=E9=9B=86=E5=90=88=
=E4=B8=AD=E7=9A=84=E5=85=83=E7=B4=A0=E9=A1=B9=E6=89=A7=E8=A1=8C=E6=B1=82=E5=
=92=8C=EF=BC=8C=E6=B3=A8=E6=84=8F=EF=BC=9A=E5=8F=AA=E6=9C=89=E5=85=83=E7=B4=
=A0=E9=A1=B9=E4=B8=BA=E6=95=B0=E5=AD=97=E6=97=B6=E6=89=8D=E6=9C=89=E6=95=88=
=EF=BC=8C=E5=90=A6=E5=88=99=E6=82=A8=E5=B0=86=E5=BE=97=E5=88=B0=E4=B8=80=E4=
=B8=AA=E6=84=8F=E6=83=B3=E4=B8=8D=E5=88=B0=E7=9A=84=E7=BB=93=E6=9E=9C=E3=80=
=82=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) Sum() (sum in= t)
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_Sum() { =09s1 :=3D gset.NewStrSet(true) =09s1.Add([]string{"1", "2", "3", "4"}...) =09fmt.Println(s1.Sum()) =09// Output: =09// 10 }
Walk
Walk
=E6=8C=89=E7=85=A7=E7=94=A8=
=E6=88=B7=E7=BB=99=E5=AE=9A=E7=9A=84=E5=9B=9E=E8=B0=83=E6=96=B9=E6=B3=95f
=E7=9A=84=E8=BF=94=E5=9B=9E=E7=BB=93=E6=9E=
=9C=E9=87=8D=E6=96=B0=E8=AE=BE=E7=BD=AE=E5=BD=93=E5=89=8D=E9=9B=86=E5=90=88=
=E3=80=82=E6=B3=A8=E6=84=8F=EF=BC=8C=E5=9C=A8=E5=B9=B6=E5=8F=91=E5=AE=89=E5=
=85=A8=E5=9C=BA=E6=99=AF=E4=B8=AD=EF=BC=8C=E8=AF=A5=E6=96=B9=E6=B3=95=E5=86=
=85=E9=83=A8=E4=BD=BF=E7=94=A8=E5=86=99=E9=94=81=E6=9D=A5=E4=BF=9D=E8=AF=81=
=E5=B9=B6=E5=8F=91=E5=AE=89=E5=85=A8=E6=80=A7=E3=80=82=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) Walk(f func(i= tem string) string) *StrSet
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_Walk() { =09var ( =09=09set gset.StrSet =09=09names =3D g.SliceStr{"user", "user_detail"} =09=09prefix =3D "gf_" =09) =09set.Add(names...) =09// Add prefix for given table names. =09set.Walk(func(item string) string { =09=09return prefix + item =09}) =09fmt.Println(set.Slice()) =09// May Output: =09// [gf_user gf_user_detail] }
MarshalJSON
MarshalJSON
=E5=AE=9E=E7=8E=B0=
=E4=BA=86json.Marshal
=E7=9A=84MarshalJSON
=E6=8E=
=A5=E5=8F=A3=E3=80=82=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) MarshalJSON()= ([]byte, error)
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_MarshalJSON()= { =09type Student struct { =09=09Id int =09=09Name string =09=09Scores *gset.StrSet =09} =09s :=3D Student{ =09=09Id: 1, =09=09Name: "john", =09=09Scores: gset.NewStrSetFrom([]string{"100", "99", "98"}, true), =09} =09b, _ :=3D json.Marshal(s) =09fmt.Println(string(b)) =09// May Output: =09// {"Id":1,"Name":"john","Scores":["100","99","98"]} }
UnmarshalJSON
UnmarshalJSON
=E5=AE=9E=E7=8E=B0=
=E4=BA=86json.Unmarshal
=E4=B8=AD=E7=9A=84UnmarshalJSON=
code>=E6=8E=A5=E5=8F=A3=E3=80=82
=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) UnmarshalJSON= (b []byte) error
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_UnmarshalJSON= () { =09b :=3D []byte(`{"Id":1,"Name":"john","Scores":["100","99","98"]}`) =09type Student struct { =09=09Id int =09=09Name string =09=09Scores *gset.StrSet =09} =09s :=3D Student{} =09json.Unmarshal(b, &s) =09fmt.Println(s) =09// May Output: =09// {1 john "99","98","100"} }
UnmarshalValue
UnfarshalValue
=E5=AE=9E=E7=8E=B0goframe
=E6=A1=86=E6=9E=
=B6=E5=86=85=E9=83=A8=E7=BB=9F=E4=B8=80=E7=9A=84=E8=AE=BE=E7=BD=AE=E6=8E=A5=
=E5=8F=A3=EF=BC=8C=E5=AE=83=E9=80=9A=E8=BF=87=E4=B8=80=E4=B8=AAinterf=
ace{}
=E7=B1=BB=E5=9E=8B=E7=9A=84=E5=8F=82=E6=95=B0=E5=88=9D=E5=A7=8B=
=E5=8C=96=E5=BD=93=E5=89=8D=E5=AF=B9=E8=B1=A1=EF=BC=8C=E8=87=B3=E4=BA=8E=E6=A0=BC=E5=BC=8F=EF=BC=9A
func (set *StrSet) UnmarshalValu= e(value interface{}) (err error)
=E7=A4=BA=E4=BE=8B=EF=BC=9A
func ExampleStrSet_UnmarshalValu= e() { =09b :=3D []byte(`{"Id":1,"Name":"john","Scores":["100","99","98"]}`) =09type Student struct { =09=09Id int =09=09Name string =09=09Scores *gset.StrSet =09} =09s :=3D Student{} =09json.Unmarshal(b, &s) =09fmt.Println(s) =09// May Output: =09// {1 john "99","98","100"} }