gset
12 分钟阅读
原文:https://pkg.go.dev/github.com/gogf/gf/v2@v2.6.4/container/gset
Package gset provides kinds of concurrent-safe/unsafe sets.
软件包 gset 提供了各种并发安全/不安全集。
常量
This section is empty.
变量
This section is empty.
函数
This section is empty.
类型
type IntSet
|
|
func NewIntSet
|
|
NewIntSet create and returns a new set, which contains un-repeated items. The parameter safe
is used to specify whether using set in concurrent-safety, which is false in default.
NewIntSet 创建并返回一个新集合,其中包含未重复的项。该参数 safe
用于指定是否在 concurrent-safety 中使用 set,默认为 false。
Example
|
|
func NewIntSetFrom
|
|
NewIntSetFrom returns a new set from items
.
NewIntSetFrom 从 返回一个新 items
集。
(*IntSet) Add
|
|
Add adds one or multiple items to the set.
“添加”会将一个或多个项目添加到集合中。
Example
|
|
(*IntSet) AddIfNotExist
|
|
AddIfNotExist checks whether item exists in the set, it adds the item to set and returns true if it does not exists in the set, or else it does nothing and returns false.
AddIfNotExist 检查集合中是否存在项,将项添加到集合中,如果集合中不存在项,则返回 true,否则不执行任何操作并返回 false。
Note that, if item
is nil, it does nothing and returns false.
请注意,如果 item
为 nil,则不执行任何操作并返回 false。
Example
|
|
(*IntSet) AddIfNotExistFunc
|
|
AddIfNotExistFunc checks whether item exists in the set, it adds the item to set and returns true if it does not exists in the set and function f
returns true, or else it does nothing and returns false.
AddIfNotExistFunc 检查集合中是否存在项,将项添加到集合中,如果集合中不存在项,则返回 true,函数 f
返回 true,否则不执行任何操作并返回 false。
Note that, the function f
is executed without writing lock.
请注意,该函数 f
是在没有写入锁的情况下执行的。
Example
|
|
(*IntSet) AddIfNotExistFuncLock
|
|
AddIfNotExistFuncLock checks whether item exists in the set, it adds the item to set and returns true if it does not exists in the set and function f
returns true, or else it does nothing and returns false.
AddIfNotExistFuncLock 检查集合中是否存在项,将项添加到集合中,如果集合中不存在项,则返回 true,函数 f
返回 true,否则不执行任何操作并返回 false。
Note that, the function f
is executed without writing lock.
请注意,该函数 f
是在没有写入锁的情况下执行的。
Example
|
|
(*IntSet) Clear
|
|
Clear deletes all items of the set.
“清除”(Clear) 将删除集合中的所有项目。
Example
|
|
(*IntSet) Complement
|
|
Complement returns a new set which is the complement from set
to full
. Which means, all the items in newSet
are in full
and not in set
.
补码返回一个新集合,该集合是从 set
到 full
的补码。这意味着,中 newSet
的所有项目都在 中 full
,而不是在 set
中。
It returns the difference between full
and set
if the given set full
is not the full set of set
.
如果给定的集合 full
不是 的全 set
集,则返回 和 set
之间的 full
差值。
Example
|
|
(*IntSet) Contains
|
|
Contains checks whether the set contains item
.
包含检查集合是否包含 item
。
Example
|
|
(*IntSet) DeepCopy
|
|
DeepCopy implements interface for deep copy of current type.
DeepCopy实现了当前类型的深度拷贝接口。
(*IntSet) Diff
|
|
Diff returns a new set which is the difference set from set
to other
. Which means, all the items in newSet
are in set
but not in other
.
Diff 返回一个新集合,该集合是 到 set
other
的差值集。这意味着,中 newSet
的所有项目都在 中 set
,但不在 other
中。
Example
|
|
(*IntSet) Equal
|
|
Equal checks whether the two sets equal.
相等检查两组是否相等。
Example
|
|
(*IntSet) Intersect
|
|
Intersect returns a new set which is the intersection from set
to other
. Which means, all the items in newSet
are in set
and also in other
.
Intersect 返回一个新集合,该集合是 的 set
other
交集。这意味着,中 newSet
的所有项目都在 和 set
中 other
。
Example
|
|
(*IntSet) IsSubsetOf
|
|
IsSubsetOf checks whether the current set is a sub-set of other
.
IsSubsetOf 检查当前集是否是 的 other
子集。
Example
|
|
(*IntSet) Iterator
|
|
Iterator iterates the set readonly with given callback function f
, if f
returns true then continue iterating; or false to stop.
迭代器使用给定的回调函数 f
迭代集 readonly ,如果 f
返回 true,则继续迭代;或 false 停止。
Example
|
|
(*IntSet) Join
|
|
Join joins items with a string glue
.
Join 使用字符串 glue
连接项目。
Example
|
|
(*IntSet) LockFunc
|
|
LockFunc locks writing with callback function f
.
LockFunc 使用回调函数 f
锁定写入。
Example
|
|
(IntSet) MarshalJSON
|
|
MarshalJSON implements the interface MarshalJSON for json.Marshal.
MarshalJSON 实现 json 的接口 MarshalJSON。元帅。
Example
|
|
(*IntSet) Merge
|
|
Merge adds items from others
sets into set
.
Merge 将 others
集合中的项添加到 set
.
Example
|
|
(*IntSet) Pop
|
|
Pop randomly pops an item from set.
Pop 会随机弹出集合中的项目。
Example
|
|
(*IntSet) Pops
|
|
Pops randomly pops size
items from set. It returns all items if size == -1.
弹出会随机弹出集合 size
中的物品。如果大小 == -1,则返回所有项目。
Example
|
|
(*IntSet) RLockFunc
|
|
RLockFunc locks reading with callback function f
.
RLockFunc 使用回调函数 f
锁定读取。
Example
|
|
(*IntSet) Remove
|
|
Remove deletes item
from set.
从集中删除删除 item
。
Example
|
|
(*IntSet) Size
|
|
Size returns the size of the set.
size 返回集合的大小。
Example
|
|
(*IntSet) Slice
|
|
Slice returns the an of items of the set as slice.
Slice 将集合的项的 an 作为 slice 返回。
Example
|
|
(*IntSet) String
|
|
String returns items as a string, which implements like json.Marshal does.
String 以字符串形式返回项目,其实现方式类似于 json。元帅做到了。
Example
|
|
(*IntSet) Sum
|
|
Sum sums items. Note: The items should be converted to int type, or you’d get a result that you unexpected.
总和项目。注意:这些项目应转换为 int 类型,否则您将得到意想不到的结果。
Example
|
|
(*IntSet) Union
|
|
Union returns a new set which is the union of set
and other
. Which means, all the items in newSet
are in set
or in other
.
Union 返回一个新集合,它是 set
和 other
的并集。这意味着,中 newSet
的所有项目都在 或 set
中 other
。
Example
|
|
(*IntSet) UnmarshalJSON
|
|
UnmarshalJSON implements the interface UnmarshalJSON for json.Unmarshal.
UnmarshalJSON 实现 json 的接口 UnmarshalJSON。元帅。
Example
|
|
(*IntSet) UnmarshalValue
|
|
UnmarshalValue is an interface implement which sets any type of value for set.
UnmarshalValue 是一个接口实现,用于为 set 设置任何类型的值。
Example
|
|
(*IntSet) Walk
|
|
Walk applies a user supplied function f
to every item of set.
Walk 将用户提供的功能 f
应用于集合的每个项目。
Example
|
|
type Set
|
|
func New
|
|
New create and returns a new set, which contains un-repeated items. The parameter safe
is used to specify whether using set in concurrent-safety, which is false in default.
新建并返回一个新集合,其中包含未重复的项目。该参数 safe
用于指定是否在 concurrent-safety 中使用 set,默认为 false。
func NewFrom
|
|
NewFrom returns a new set from items
. Parameter items
can be either a variable of any type, or a slice.
NewFrom 返回一个新 items
集合。参数 items
可以是任何类型的变量,也可以是切片。
Example
|
|
func NewSet
|
|
NewSet create and returns a new set, which contains un-repeated items. Also see New.
NewSet 创建并返回一个新集合,其中包含未重复的项。另请参阅新建。
(*Set) Add
|
|
Add adds one or multiple items to the set.
“添加”会将一个或多个项目添加到集合中。
(*Set) AddIfNotExist
|
|
AddIfNotExist checks whether item exists in the set, it adds the item to set and returns true if it does not exists in the set, or else it does nothing and returns false.
AddIfNotExist 检查集合中是否存在项,将项添加到集合中,如果集合中不存在项,则返回 true,否则不执行任何操作并返回 false。
Note that, if item
is nil, it does nothing and returns false.
请注意,如果 item
为 nil,则不执行任何操作并返回 false。
Example
|
|
(*Set) AddIfNotExistFunc
|
|
AddIfNotExistFunc checks whether item exists in the set, it adds the item to set and returns true if it does not exist in the set and function f
returns true, or else it does nothing and returns false.
AddIfNotExistFunc 检查集合中是否存在项,将项添加到集合中,如果集合中不存在项,则返回 true,函数 f
返回 true,否则不执行任何操作并返回 false。
Note that, if item
is nil, it does nothing and returns false. The function f
is executed without writing lock.
请注意,如果 item
为 nil,则不执行任何操作并返回 false。该函数 f
在没有写入锁的情况下执行。
(*Set) AddIfNotExistFuncLock
|
|
AddIfNotExistFuncLock checks whether item exists in the set, it adds the item to set and returns true if it does not exists in the set and function f
returns true, or else it does nothing and returns false.
AddIfNotExistFuncLock 检查集合中是否存在项,将项添加到集合中,如果集合中不存在项,则返回 true,函数 f
返回 true,否则不执行任何操作并返回 false。
Note that, if item
is nil, it does nothing and returns false. The function f
is executed within writing lock.
请注意,如果 item
为 nil,则不执行任何操作并返回 false。该函数 f
在写入锁中执行。
(*Set) Clear
|
|
Clear deletes all items of the set.
“清除”(Clear) 将删除集合中的所有项目。
(*Set) Complement
|
|
Complement returns a new set which is the complement from set
to full
. Which means, all the items in newSet
are in full
and not in set
.
补码返回一个新集合,该集合是从 set
到 full
的补码。这意味着,中 newSet
的所有项目都在 中 full
,而不是在 set
中。
It returns the difference between full
and set
if the given set full
is not the full set of set
.
如果给定的集合 full
不是 的全 set
集,则返回 和 set
之间的 full
差值。
Example
|
|
(*Set) Contains
|
|
Contains checks whether the set contains item
.
包含检查集合是否包含 item
。
Example
|
|
(*Set) DeepCopy
|
|
DeepCopy implements interface for deep copy of current type.
DeepCopy实现了当前类型的深度拷贝接口。
(*Set) Diff
|
|
Diff returns a new set which is the difference set from set
to others
. Which means, all the items in newSet
are in set
but not in others
.
Diff 返回一个新集合,该集合是 到 set
others
的差值集。这意味着,中 newSet
的所有项目都在 中 set
,但不在 others
中。
Example
|
|
(*Set) Equal
|
|
Equal checks whether the two sets equal.
相等检查两组是否相等。
(*Set) Intersect
|
|
Intersect returns a new set which is the intersection from set
to others
. Which means, all the items in newSet
are in set
and also in others
.
Intersect 返回一个新集合,该集合是 的 set
others
交集。这意味着,中 newSet
的所有项目都在 和 set
中 others
。
Example
|
|
(*Set) IsSubsetOf
|
|
IsSubsetOf checks whether the current set is a sub-set of other
.
IsSubsetOf 检查当前集是否是 的 other
子集。
Example
|
|
(*Set) Iterator
|
|
Iterator iterates the set readonly with given callback function f
, if f
returns true then continue iterating; or false to stop.
迭代器使用给定的回调函数 f
迭代集 readonly ,如果 f
返回 true,则继续迭代;或 false 停止。
(*Set) Join
|
|
Join joins items with a string glue
.
Join 使用字符串 glue
连接项目。
Example
|
|
(*Set) LockFunc
|
|
LockFunc locks writing with callback function f
.
LockFunc 使用回调函数 f
锁定写入。
(Set) MarshalJSON
|
|
MarshalJSON implements the interface MarshalJSON for json.Marshal.
MarshalJSON 实现 json 的接口 MarshalJSON。元帅。
(*Set) Merge
|
|
Merge adds items from others
sets into set
.
Merge 将 others
集合中的项添加到 set
.
(*Set) Pop
|
|
Pop randomly pops an item from set.
Pop 会随机弹出集合中的项目。
Example
|
|
(*Set) Pops
|
|
Pops randomly pops size
items from set. It returns all items if size == -1.
弹出会随机弹出集合 size
中的物品。如果大小 == -1,则返回所有项目。
Example
|
|
(*Set) RLockFunc
|
|
RLockFunc locks reading with callback function f
.
RLockFunc 使用回调函数 f
锁定读取。
(*Set) Remove
|
|
Remove deletes item
from set.
从集中删除删除 item
。
(*Set) Size
|
|
Size returns the size of the set.
size 返回集合的大小。
(*Set) Slice
|
|
Slice returns all items of the set as slice.
Slice 将集合的所有项目作为 slice 返回。
(*Set) String
|
|
String returns items as a string, which implements like json.Marshal does.
String 以字符串形式返回项目,其实现方式类似于 json。元帅做到了。
(*Set) Sum
|
|
Sum sums items. Note: The items should be converted to int type, or you’d get a result that you unexpected.
总和项目。注意:这些项目应转换为 int 类型,否则您将得到意想不到的结果。
(*Set) Union
|
|
Union returns a new set which is the union of set
and others
. Which means, all the items in newSet
are in set
or in others
.
Union 返回一个新集合,它是 set
和 others
的并集。这意味着,中 newSet
的所有项目都在 或 set
中 others
。
Example
|
|
(*Set) UnmarshalJSON
|
|
UnmarshalJSON implements the interface UnmarshalJSON for json.Unmarshal.
UnmarshalJSON 实现 json 的接口 UnmarshalJSON。元帅。
(*Set) UnmarshalValue
|
|
UnmarshalValue is an interface implement which sets any type of value for set.
UnmarshalValue 是一个接口实现,用于为 set 设置任何类型的值。
(*Set) Walk
|
|
Walk applies a user supplied function f
to every item of set.
Walk 将用户提供的功能 f
应用于集合的每个项目。
type StrSet
|
|
func NewStrSet
|
|
NewStrSet create and returns a new set, which contains un-repeated items. The parameter safe
is used to specify whether using set in concurrent-safety, which is false in default.
NewStrSet 创建并返回一个新集合,其中包含未重复的项。该参数 safe
用于指定是否在 concurrent-safety 中使用 set,默认为 false。
Example
|
|
func NewStrSetFrom
|
|
NewStrSetFrom returns a new set from items
.
NewStrSetFrom 从 返回一个新 items
集。
Example
|
|
(*StrSet) Add
|
|
Add adds one or multiple items to the set.
“添加”会将一个或多个项目添加到集合中。
Example
|
|
(*StrSet) AddIfNotExist
|
|
AddIfNotExist checks whether item exists in the set, it adds the item to set and returns true if it does not exist in the set, or else it does nothing and returns false.
AddIfNotExist 检查集合中是否存在项,将项添加到集合中,如果集合中不存在项,则返回 true,否则不执行任何操作并返回 false。
Example
|
|
(*StrSet) AddIfNotExistFunc
|
|
AddIfNotExistFunc checks whether item exists in the set, it adds the item to set and returns true if it does not exists in the set and function f
returns true, or else it does nothing and returns false.
AddIfNotExistFunc 检查集合中是否存在项,将项添加到集合中,如果集合中不存在项,则返回 true,函数 f
返回 true,否则不执行任何操作并返回 false。
Note that, the function f
is executed without writing lock.
请注意,该函数 f
是在没有写入锁的情况下执行的。
Example
|
|
(*StrSet) AddIfNotExistFuncLock
|
|
AddIfNotExistFuncLock checks whether item exists in the set, it adds the item to set and returns true if it does not exists in the set and function f
returns true, or else it does nothing and returns false.
AddIfNotExistFuncLock 检查集合中是否存在项,将项添加到集合中,如果集合中不存在项,则返回 true,函数 f
返回 true,否则不执行任何操作并返回 false。
Note that, the function f
is executed without writing lock.
请注意,该函数 f
是在没有写入锁的情况下执行的。
Example
|
|
(*StrSet) Clear
|
|
Clear deletes all items of the set.
“清除”(Clear) 将删除集合中的所有项目。
Example
|
|
(*StrSet) Complement
|
|
Complement returns a new set which is the complement from set
to full
. Which means, all the items in newSet
are in full
and not in set
.
补码返回一个新集合,该集合是从 set
到 full
的补码。这意味着,中 newSet
的所有项目都在 中 full
,而不是在 set
中。
It returns the difference between full
and set
if the given set full
is not the full set of set
.
如果给定的集合 full
不是 的全 set
集,则返回 和 set
之间的 full
差值。
Example
|
|
(*StrSet) Contains
|
|
Contains checks whether the set contains item
.
包含检查集合是否包含 item
。
Example
|
|
(*StrSet) ContainsI
|
|
ContainsI checks whether a value exists in the set with case-insensitively. Note that it internally iterates the whole set to do the comparison with case-insensitively.
ContainsI 使用不区分大小写的方式检查集合中是否存在值。请注意,它会在内部迭代整个集合,以不区分大小写地进行比较。
Example
|
|
(*StrSet) DeepCopy
|
|
DeepCopy implements interface for deep copy of current type.
DeepCopy实现了当前类型的深度拷贝接口。
(*StrSet) Diff
|
|
Diff returns a new set which is the difference set from set
to other
. Which means, all the items in newSet
are in set
but not in other
.
Diff 返回一个新集合,该集合是 到 set
other
的差值集。这意味着,中 newSet
的所有项目都在 中 set
,但不在 other
中。
Example
|
|
(*StrSet) Equal
|
|
Equal checks whether the two sets equal.
相等检查两组是否相等。
Example
|
|
(*StrSet) Intersect
|
|
Intersect returns a new set which is the intersection from set
to other
. Which means, all the items in newSet
are in set
and also in other
.
Intersect 返回一个新集合,该集合是 的 set
other
交集。这意味着,中 newSet
的所有项目都在 和 set
中 other
。
Example
|
|
(*StrSet) IsSubsetOf
|
|
IsSubsetOf checks whether the current set is a sub-set of other
.
IsSubsetOf 检查当前集是否是 的 other
子集。
Example
|
|
(*StrSet) Iterator
|
|
Iterator iterates the set readonly with given callback function f
, if f
returns true then continue iterating; or false to stop.
迭代器使用给定的回调函数 f
迭代集 readonly ,如果 f
返回 true,则继续迭代;或 false 停止。
Example
|
|
(*StrSet) Join
|
|
Join joins items with a string glue
.
Join 使用字符串 glue
连接项目。
Example
|
|
(*StrSet) LockFunc
|
|
LockFunc locks writing with callback function f
.
LockFunc 使用回调函数 f
锁定写入。
Example
|
|
(StrSet) MarshalJSON
|
|
MarshalJSON implements the interface MarshalJSON for json.Marshal.
MarshalJSON 实现 json 的接口 MarshalJSON。元帅。
Example
|
|
(*StrSet) Merge
|
|
Merge adds items from others
sets into set
.
Merge 将 others
集合中的项添加到 set
.
Example
|
|
(*StrSet) Pop
|
|
Pop randomly pops an item from set.
Pop 会随机弹出集合中的项目。
Example
|
|
(*StrSet) Pops
|
|
Pops randomly pops size
items from set. It returns all items if size == -1.
弹出会随机弹出集合 size
中的物品。如果大小 == -1,则返回所有项目。
Example
|
|
(*StrSet) RLockFunc
|
|
RLockFunc locks reading with callback function f
.
RLockFunc 使用回调函数 f
锁定读取。
Example
|
|
(*StrSet) Remove
|
|
Remove deletes item
from set.
从集中删除删除 item
。
Example
|
|
(*StrSet) Size
|
|
Size returns the size of the set.
size 返回集合的大小。
Example
|
|
(*StrSet) Slice
|
|
Slice returns the an of items of the set as slice.
Slice 将集合的项的 an 作为 slice 返回。
Example
|
|
(*StrSet) String
|
|
String returns items as a string, which implements like json.Marshal does.
String 以字符串形式返回项目,其实现方式类似于 json。元帅做到了。
Example
|
|
(*StrSet) Sum
|
|
Sum sums items. Note: The items should be converted to int type, or you’d get a result that you unexpected.
总和项目。注意:这些项目应转换为 int 类型,否则您将得到意想不到的结果。
Example
|
|
(*StrSet) Union
|
|
Union returns a new set which is the union of set
and other
. Which means, all the items in newSet
are in set
or in other
.
Union 返回一个新集合,它是 set
和 other
的并集。这意味着,中 newSet
的所有项目都在 或 set
中 other
。
Example
|
|
(*StrSet) UnmarshalJSON
|
|
UnmarshalJSON implements the interface UnmarshalJSON for json.Unmarshal.
UnmarshalJSON 实现 json 的接口 UnmarshalJSON。元帅。
Example
|
|
(*StrSet) UnmarshalValue
|
|
UnmarshalValue is an interface implement which sets any type of value for set.
UnmarshalValue 是一个接口实现,用于为 set 设置任何类型的值。
Example
|
|
(*StrSet) Walk
|
|
Walk applies a user supplied function f
to every item of set.
Walk 将用户提供的功能 f
应用于集合的每个项目。
Example Walk
示例步行
Walk applies a user supplied function f
to every item of set.
Walk 将用户提供的功能 f
应用于集合的每个项目。
|
|