Documentation ¶
Overview ¶
包garray提供了最常用的数组容器,同时支持并发安全/不安全切换功能。
Index ¶
- type Array
- func NewArray别名(并发安全 ...bool) *Array
- func NewFromCopy别名(数组 []interface{}, 并发安全 ...bool) *Array
- func NewFrom别名(数组 []interface{}, 并发安全 ...bool) *Array
- func X创建(并发安全 ...bool) *Array
- func X创建并从数组(数组 []interface{}, 并发安全 ...bool) *Array
- func X创建并从数组复制(数组 []interface{}, 并发安全 ...bool) *Array
- func X创建并按大小(大小 int, 上限 int, 并发安全 ...bool) *Array
- func X创建并按范围(起点, 终点, 步长 int, 并发安全 ...bool) *Array
- func (a *Array) Append别名(值 ...interface{}) *Array
- func (a *Array) DeepCopy() interface{}
- func (a Array) MarshalJSON() ([]byte, error)
- func (a *Array) String() string
- func (a *Array) UnmarshalJSON(b []byte) error
- func (a *Array) UnmarshalValue(value interface{}) error
- func (a *Array) X倒排序() *Array
- func (a *Array) X入栈右(值 ...interface{}) *Array
- func (a *Array) X入栈左(值 ...interface{}) *Array
- func (a *Array) X出栈右() (值 interface{}, 成功 bool)
- func (a *Array) X出栈右多个(数量 int) []interface{}
- func (a *Array) X出栈左() (值 interface{}, 成功 bool)
- func (a *Array) X出栈左多个(数量 int) []interface{}
- func (a *Array) X出栈随机() (值 interface{}, 成功 bool)
- func (a *Array) X出栈随机多个(数量 int) []interface{}
- func (a *Array) X分割(数量 int) [][]interface{}
- func (a *Array) X删除(索引 int) (值 interface{}, 成功 bool)
- func (a *Array) X删除值(值 interface{}) bool
- func (a *Array) X删除多个值(值 ...interface{})
- func (a *Array) X删除所有nil() *Array
- func (a *Array) X删除所有空值() *Array
- func (a *Array) X去重() *Array
- func (a *Array) X取any数组() []interface{}
- func (a *Array) X取值(索引 int) (值 interface{})
- func (a *Array) X取值2(索引 int) (值 interface{}, 成功 bool)
- func (a *Array) X取值随机() (值 interface{}, 成功 bool)
- func (a *Array) X取值随机多个(数量 int) []interface{}
- func (a *Array) X取切片() []interface{}
- func (a *Array) X取切片并按数量(起点 int, 数量 ...int) []interface{}
- func (a *Array) X取切片并按范围(起点 int, 终点 ...int) []interface{}
- func (a *Array) X取副本() (新数组 *Array)
- func (a *Array) X取文本() string
- func (a *Array) X取长度() int
- func (a *Array) X合并(数组 interface{}) *Array
- func (a *Array) X填充(起点 int, 填充数量 int, 值 interface{}) error
- func (a *Array) X填满(总数量 int, 值 interface{}) *Array
- func (a *Array) X排序并带函数(回调函数 func(v1, v2 interface{}) bool) *Array
- func (a *Array) X插入前面(索引 int, 值 ...interface{}) error
- func (a *Array) X插入后面(索引 int, 值 ...interface{}) error
- func (a *Array) X是否为空() bool
- func (a *Array) X是否存在(值 interface{}) bool
- func (a *Array) X替换(数组 []interface{}) *Array
- func (a *Array) X查找(值 interface{}) int
- func (a *Array) X求和() (值 int)
- func (a *Array) X清空() *Array
- func (a *Array) X统计() map[interface{}]int
- func (a *Array) X设置值(索引 int, 值 interface{}) error
- func (a *Array) X设置数组(数组 []interface{}) *Array
- func (a *Array) X连接(连接符 string) string
- func (a *Array) X遍历(回调函数 func(k int, v interface{}) bool)
- func (a *Array) X遍历修改(回调函数 func(值 interface{}) interface{}) *Array
- func (a *Array) X遍历删除(回调函数 func(索引 int, 值 interface{}) bool) *Array
- func (a *Array) X遍历升序(回调函数 func(k int, v interface{}) bool)
- func (a *Array) X遍历并写锁定(回调函数 func(数组 []interface{})) *Array
- func (a *Array) X遍历并读锁定(回调函数 func(数组 []interface{})) *Array
- func (a *Array) X遍历降序(回调函数 func(k int, v interface{}) bool)
- func (a *Array) X随机排序() *Array
- type IntArray
- func (a *IntArray) Append别名(值 ...int) *IntArray
- func (a *IntArray) DeepCopy() interface{}
- func (a IntArray) MarshalJSON() ([]byte, error)
- func (a *IntArray) String() string
- func (a *IntArray) UnmarshalJSON(b []byte) error
- func (a *IntArray) UnmarshalValue(value interface{}) error
- func (a *IntArray) X倒排序() *IntArray
- func (a *IntArray) X入栈右(值 ...int) *IntArray
- func (a *IntArray) X入栈左(值 ...int) *IntArray
- func (a *IntArray) X出栈右() (值 int, 成功 bool)
- func (a *IntArray) X出栈右多个(数量 int) []int
- func (a *IntArray) X出栈左() (值 int, 成功 bool)
- func (a *IntArray) X出栈左多个(数量 int) []int
- func (a *IntArray) X出栈随机() (值 int, 成功 bool)
- func (a *IntArray) X出栈随机多个(数量 int) []int
- func (a *IntArray) X分割(数量 int) [][]int
- func (a *IntArray) X删除(索引 int) (值 int, 成功 bool)
- func (a *IntArray) X删除值(值 int) bool
- func (a *IntArray) X删除多个值(值 ...int)
- func (a *IntArray) X删除所有零值() *IntArray
- func (a *IntArray) X去重() *IntArray
- func (a *IntArray) X取any数组() []interface{}
- func (a *IntArray) X取值(索引 int) (值 int)
- func (a *IntArray) X取值2(索引 int) (值 int, 成功 bool)
- func (a *IntArray) X取值随机() (值 int, 成功 bool)
- func (a *IntArray) X取值随机多个(数量 int) []int
- func (a *IntArray) X取切片() []int
- func (a *IntArray) X取切片并按数量(起点 int, 数量 ...int) []int
- func (a *IntArray) X取切片并按范围(起点 int, 终点 ...int) []int
- func (a *IntArray) X取副本() (新数组 *IntArray)
- func (a *IntArray) X取文本() string
- func (a *IntArray) X取长度() int
- func (a *IntArray) X合并(数组 interface{}) *IntArray
- func (a *IntArray) X填充(起点 int, 填充数量 int, 值 int) error
- func (a *IntArray) X填满(总数量 int, 值 int) *IntArray
- func (a *IntArray) X排序函数(回调函数 func(v1, v2 int) bool) *IntArray
- func (a *IntArray) X排序递增(降序 ...bool) *IntArray
- func (a *IntArray) X插入前面(索引 int, 值 ...int) error
- func (a *IntArray) X插入后面(index int, 值 ...int) error
- func (a *IntArray) X是否为空() bool
- func (a *IntArray) X是否存在(值 int) bool
- func (a *IntArray) X替换(数组 []int) *IntArray
- func (a *IntArray) X查找(值 int) int
- func (a *IntArray) X求和() (值 int)
- func (a *IntArray) X清空() *IntArray
- func (a *IntArray) X统计() map[int]int
- func (a *IntArray) X设置值(索引 int, 值 int) error
- func (a *IntArray) X设置数组(数组 []int) *IntArray
- func (a *IntArray) X连接(连接符 string) string
- func (a *IntArray) X遍历(回调函数 func(k int, v int) bool)
- func (a *IntArray) X遍历修改(回调函数 func(值 int) int) *IntArray
- func (a *IntArray) X遍历写锁定(回调函数 func(数组 []int)) *IntArray
- func (a *IntArray) X遍历删除(回调函数 func(索引 int, 值 int) bool) *IntArray
- func (a *IntArray) X遍历升序(回调函数 func(k int, v int) bool)
- func (a *IntArray) X遍历读锁定(回调函数 func(数组 []int)) *IntArray
- func (a *IntArray) X遍历降序(回调函数 func(k int, v int) bool)
- func (a *IntArray) X随机排序() *IntArray
- type SortedArray
- func X创建排序(排序函数 func(a, b interface{}) int, 并发安全 ...bool) *SortedArray
- func X创建排序并从数组(数组 []interface{}, 排序函数 func(a, b interface{}) int, ...) *SortedArray
- func X创建排序并从数组复制(数组 []interface{}, 排序函数 func(a, b interface{}) int, ...) *SortedArray
- func X创建排序并按大小(大小 int, 排序函数 func(a, b interface{}) int, 并发安全 ...bool) *SortedArray
- func X创建排序并按范围(起点, 终点, 步长 int, 排序函数 func(a, b interface{}) int, ...) *SortedArray
- func (a *SortedArray) Append别名(值 ...interface{}) *SortedArray
- func (a *SortedArray) DeepCopy() interface{}
- func (a SortedArray) MarshalJSON() ([]byte, error)
- func (a *SortedArray) String() string
- func (a *SortedArray) UnmarshalJSON(b []byte) error
- func (a *SortedArray) UnmarshalValue(value interface{}) (err error)
- func (a *SortedArray) X入栈右(值 ...interface{}) *SortedArray
- func (a *SortedArray) X出栈右() (值 interface{}, 成功 bool)
- func (a *SortedArray) X出栈右多个(数量 int) []interface{}
- func (a *SortedArray) X出栈左() (值 interface{}, 成功 bool)
- func (a *SortedArray) X出栈左多个(数量 int) []interface{}
- func (a *SortedArray) X出栈随机() (值 interface{}, 成功 bool)
- func (a *SortedArray) X出栈随机多个(数量 int) []interface{}
- func (a *SortedArray) X分割(数量 int) [][]interface{}
- func (a *SortedArray) X删除(索引 int) (值 interface{}, 成功 bool)
- func (a *SortedArray) X删除值(值 interface{}) bool
- func (a *SortedArray) X删除多个值(值 ...interface{})
- func (a *SortedArray) X删除所有nil() *SortedArray
- func (a *SortedArray) X删除所有空值() *SortedArray
- func (a *SortedArray) X去重() *SortedArray
- func (a *SortedArray) X取any数组() []interface{}
- func (a *SortedArray) X取值(索引 int) (值 interface{})
- func (a *SortedArray) X取值2(索引 int) (值 interface{}, 成功 bool)
- func (a *SortedArray) X取值随机() (值 interface{}, 成功 bool)
- func (a *SortedArray) X取值随机多个(数量 int) []interface{}
- func (a *SortedArray) X取切片() []interface{}
- func (a *SortedArray) X取切片并按数量(起点 int, 数量 ...int) []interface{}
- func (a *SortedArray) X取切片并按范围(起点 int, 终点 ...int) []interface{}
- func (a *SortedArray) X取副本() (新数组 *SortedArray)
- func (a *SortedArray) X取文本() string
- func (a *SortedArray) X取长度() int
- func (a *SortedArray) X合并(数组 interface{}) *SortedArray
- func (a *SortedArray) X排序递增() *SortedArray
- func (a *SortedArray) X是否为空() bool
- func (a *SortedArray) X是否存在(值 interface{}) bool
- func (a *SortedArray) X查找(值 interface{}) (索引 int)
- func (a *SortedArray) X求和() (值 int)
- func (a *SortedArray) X清空() *SortedArray
- func (a *SortedArray) X统计() map[interface{}]int
- func (a *SortedArray) X设置去重(去重 bool) *SortedArray
- func (a *SortedArray) X设置排序函数(排序函数 func(a, b interface{}) int)
- func (a *SortedArray) X设置数组(数组 []interface{}) *SortedArray
- func (a *SortedArray) X连接(连接符 string) string
- func (a *SortedArray) X遍历(回调函数 func(k int, v interface{}) bool)
- func (a *SortedArray) X遍历修改(回调函数 func(值 interface{}) interface{}) *SortedArray
- func (a *SortedArray) X遍历写锁定(回调函数 func(数组 []interface{})) *SortedArray
- func (a *SortedArray) X遍历删除(回调函数 func(索引 int, 值 interface{}) bool) *SortedArray
- func (a *SortedArray) X遍历升序(回调函数 func(k int, v interface{}) bool)
- func (a *SortedArray) X遍历读锁定(回调函数 func(数组 []interface{})) *SortedArray
- func (a *SortedArray) X遍历降序(回调函数 func(k int, v interface{}) bool)
- type SortedIntArray
- func X创建整数排序(并发安全 ...bool) *SortedIntArray
- func X创建整数排序并从数组(数组 []int, 并发安全 ...bool) *SortedIntArray
- func X创建整数排序并从数组复制(数组 []int, 并发安全 ...bool) *SortedIntArray
- func X创建整数排序并带排序函数(排序函数 func(a, b int) int, 并发安全 ...bool) *SortedIntArray
- func X创建整数排序并按大小(大小 int, 并发安全 ...bool) *SortedIntArray
- func X创建整数排序并按范围(起点, 终点, 步长 int, 并发安全 ...bool) *SortedIntArray
- func (a *SortedIntArray) Append别名(值 ...int) *SortedIntArray
- func (a *SortedIntArray) DeepCopy() interface{}
- func (a SortedIntArray) MarshalJSON() ([]byte, error)
- func (a *SortedIntArray) String() string
- func (a *SortedIntArray) UnmarshalJSON(b []byte) error
- func (a *SortedIntArray) UnmarshalValue(value interface{}) (err error)
- func (a *SortedIntArray) X入栈右(值 ...int) *SortedIntArray
- func (a *SortedIntArray) X出栈右() (值 int, 成功 bool)
- func (a *SortedIntArray) X出栈右多个(数量 int) []int
- func (a *SortedIntArray) X出栈左() (值 int, 成功 bool)
- func (a *SortedIntArray) X出栈左多个(数量 int) []int
- func (a *SortedIntArray) X出栈随机() (值 int, 成功 bool)
- func (a *SortedIntArray) X出栈随机多个(数量 int) []int
- func (a *SortedIntArray) X分割(数量 int) [][]int
- func (a *SortedIntArray) X删除(索引 int) (值 int, 成功 bool)
- func (a *SortedIntArray) X删除值(值 int) bool
- func (a *SortedIntArray) X删除多个值(值 ...int)
- func (a *SortedIntArray) X删除所有空值() *SortedIntArray
- func (a *SortedIntArray) X去重() *SortedIntArray
- func (a *SortedIntArray) X取any数组() []interface{}
- func (a *SortedIntArray) X取值(索引 int) (值 int)
- func (a *SortedIntArray) X取值2(索引 int) (值 int, 成功 bool)
- func (a *SortedIntArray) X取值随机() (值 int, 成功 bool)
- func (a *SortedIntArray) X取值随机多个(数量 int) []int
- func (a *SortedIntArray) X取切片() []int
- func (a *SortedIntArray) X取切片并按数量(起点 int, 数量 ...int) []int
- func (a *SortedIntArray) X取切片并按范围(起点 int, 终点 ...int) []int
- func (a *SortedIntArray) X取副本() (新数组 *SortedIntArray)
- func (a *SortedIntArray) X取文本() string
- func (a *SortedIntArray) X取长度() int
- func (a *SortedIntArray) X合并(数组 interface{}) *SortedIntArray
- func (a *SortedIntArray) X排序递增() *SortedIntArray
- func (a *SortedIntArray) X是否为空() bool
- func (a *SortedIntArray) X是否存在(值 int) bool
- func (a *SortedIntArray) X查找(值 int) (索引 int)
- func (a *SortedIntArray) X求和() (值 int)
- func (a *SortedIntArray) X清空() *SortedIntArray
- func (a *SortedIntArray) X统计() map[int]int
- func (a *SortedIntArray) X设置去重(去重 bool) *SortedIntArray
- func (a *SortedIntArray) X设置数组(数组 []int) *SortedIntArray
- func (a *SortedIntArray) X连接(连接符 string) string
- func (a *SortedIntArray) X遍历(回调函数 func(k int, v int) bool)
- func (a *SortedIntArray) X遍历修改(回调函数 func(值 int) int) *SortedIntArray
- func (a *SortedIntArray) X遍历写锁定(回调函数 func(数组 []int)) *SortedIntArray
- func (a *SortedIntArray) X遍历删除(回调函数 func(索引 int, 值 int) bool) *SortedIntArray
- func (a *SortedIntArray) X遍历升序(回调函数 func(k int, v int) bool)
- func (a *SortedIntArray) X遍历读锁定(回调函数 func(数组 []int)) *SortedIntArray
- func (a *SortedIntArray) X遍历降序(回调函数 func(k int, v int) bool)
- type SortedStrArray
- func (a *SortedStrArray) Append别名(值 ...string) *SortedStrArray
- func (a *SortedStrArray) DeepCopy() interface{}
- func (a SortedStrArray) MarshalJSON() ([]byte, error)
- func (a *SortedStrArray) String() string
- func (a *SortedStrArray) UnmarshalJSON(b []byte) error
- func (a *SortedStrArray) UnmarshalValue(value interface{}) (err error)
- func (a *SortedStrArray) X入栈右(值 ...string) *SortedStrArray
- func (a *SortedStrArray) X出栈右() (值 string, 成功 bool)
- func (a *SortedStrArray) X出栈右多个(数量 int) []string
- func (a *SortedStrArray) X出栈左() (值 string, 成功 bool)
- func (a *SortedStrArray) X出栈左多个(数量 int) []string
- func (a *SortedStrArray) X出栈随机() (值 string, 成功 bool)
- func (a *SortedStrArray) X出栈随机多个(数量 int) []string
- func (a *SortedStrArray) X分割(数量 int) [][]string
- func (a *SortedStrArray) X删除(索引 int) (值 string, 成功 bool)
- func (a *SortedStrArray) X删除值(值 string) bool
- func (a *SortedStrArray) X删除多个值(值 ...string)
- func (a *SortedStrArray) X删除所有空值() *SortedStrArray
- func (a *SortedStrArray) X去重() *SortedStrArray
- func (a *SortedStrArray) X取any数组() []interface{}
- func (a *SortedStrArray) X取值(索引 int) (值 string)
- func (a *SortedStrArray) X取值2(索引 int) (值 string, 成功 bool)
- func (a *SortedStrArray) X取值随机() (值 string, 成功 bool)
- func (a *SortedStrArray) X取值随机多个(数量 int) []string
- func (a *SortedStrArray) X取切片() []string
- func (a *SortedStrArray) X取切片并按数量(起点 int, 数量 ...int) []string
- func (a *SortedStrArray) X取切片并按范围(起点 int, 终点 ...int) []string
- func (a *SortedStrArray) X取副本() (新数组 *SortedStrArray)
- func (a *SortedStrArray) X取文本() string
- func (a *SortedStrArray) X取长度() int
- func (a *SortedStrArray) X合并(数组 interface{}) *SortedStrArray
- func (a *SortedStrArray) X排序递增() *SortedStrArray
- func (a *SortedStrArray) X是否为空() bool
- func (a *SortedStrArray) X是否存在(值 string) bool
- func (a *SortedStrArray) X是否存在并忽略大小写(值 string) bool
- func (a *SortedStrArray) X查找(值 string) (索引 int)
- func (a *SortedStrArray) X求和() (值 int)
- func (a *SortedStrArray) X清空() *SortedStrArray
- func (a *SortedStrArray) X统计() map[string]int
- func (a *SortedStrArray) X设置去重(去重 bool) *SortedStrArray
- func (a *SortedStrArray) X设置数组(数组 []string) *SortedStrArray
- func (a *SortedStrArray) X连接(连接符 string) string
- func (a *SortedStrArray) X遍历(回调函数 func(k int, v string) bool)
- func (a *SortedStrArray) X遍历修改(回调函数 func(值 string) string) *SortedStrArray
- func (a *SortedStrArray) X遍历写锁定(回调函数 func(数组 []string)) *SortedStrArray
- func (a *SortedStrArray) X遍历删除(回调函数 func(索引 int, 值 string) bool) *SortedStrArray
- func (a *SortedStrArray) X遍历升序(回调函数 func(k int, v string) bool)
- func (a *SortedStrArray) X遍历读锁定(回调函数 func(数组 []string)) *SortedStrArray
- func (a *SortedStrArray) X遍历降序(回调函数 func(k int, v string) bool)
- type StrArray
- func (a *StrArray) Append别名(值 ...string) *StrArray
- func (a *StrArray) DeepCopy() interface{}
- func (a StrArray) MarshalJSON() ([]byte, error)
- func (a *StrArray) String() string
- func (a *StrArray) UnmarshalJSON(b []byte) error
- func (a *StrArray) UnmarshalValue(value interface{}) error
- func (a *StrArray) X倒排序() *StrArray
- func (a *StrArray) X入栈右(值 ...string) *StrArray
- func (a *StrArray) X入栈左(值 ...string) *StrArray
- func (a *StrArray) X出栈右() (值 string, 成功 bool)
- func (a *StrArray) X出栈右多个(数量 int) []string
- func (a *StrArray) X出栈左() (值 string, 成功 bool)
- func (a *StrArray) X出栈左多个(数量 int) []string
- func (a *StrArray) X出栈随机() (值 string, 成功 bool)
- func (a *StrArray) X出栈随机多个(数量 int) []string
- func (a *StrArray) X分割(数量 int) [][]string
- func (a *StrArray) X删除(索引 int) (值 string, 成功 bool)
- func (a *StrArray) X删除值(值 string) bool
- func (a *StrArray) X删除多个值(值 ...string)
- func (a *StrArray) X删除所有空值() *StrArray
- func (a *StrArray) X去重() *StrArray
- func (a *StrArray) X取any数组() []interface{}
- func (a *StrArray) X取值(索引 int) (值 string)
- func (a *StrArray) X取值2(索引 int) (值 string, 成功 bool)
- func (a *StrArray) X取值随机() (值 string, 成功 bool)
- func (a *StrArray) X取值随机多个(数量 int) []string
- func (a *StrArray) X取切片() []string
- func (a *StrArray) X取切片并按数量(起点 int, 数量 ...int) []string
- func (a *StrArray) X取切片并按范围(起点 int, 终点 ...int) []string
- func (a *StrArray) X取副本() (新数组 *StrArray)
- func (a *StrArray) X取文本() string
- func (a *StrArray) X取长度() int
- func (a *StrArray) X合并(数组 interface{}) *StrArray
- func (a *StrArray) X填充(起点 int, 填充数量 int, 值 string) error
- func (a *StrArray) X填满(总数量 int, 值 string) *StrArray
- func (a *StrArray) X排序函数(回调函数 func(v1, v2 string) bool) *StrArray
- func (a *StrArray) X排序递增(降序 ...bool) *StrArray
- func (a *StrArray) X插入前面(索引 int, 值 ...string) error
- func (a *StrArray) X插入后面(索引 int, 值 ...string) error
- func (a *StrArray) X是否为空() bool
- func (a *StrArray) X是否存在(值 string) bool
- func (a *StrArray) X是否存在并忽略大小写(值 string) bool
- func (a *StrArray) X替换(数组 []string) *StrArray
- func (a *StrArray) X查找(值 string) int
- func (a *StrArray) X求和() (值 int)
- func (a *StrArray) X清空() *StrArray
- func (a *StrArray) X统计() map[string]int
- func (a *StrArray) X设置值(索引 int, 值 string) error
- func (a *StrArray) X设置数组(数组 []string) *StrArray
- func (a *StrArray) X连接(连接符 string) string
- func (a *StrArray) X遍历(回调函数 func(k int, v string) bool)
- func (a *StrArray) X遍历修改(回调函数 func(值 string) string) *StrArray
- func (a *StrArray) X遍历写锁定(回调函数 func(数组 []string)) *StrArray
- func (a *StrArray) X遍历删除(回调函数 func(索引 int, 值 string) bool) *StrArray
- func (a *StrArray) X遍历升序(回调函数 func(k int, v string) bool)
- func (a *StrArray) X遍历读锁定(回调函数 func(数组 []string)) *StrArray
- func (a *StrArray) X遍历降序(回调函数 func(k int, v string) bool)
- func (a *StrArray) X随机排序() *StrArray
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Array ¶
type Array struct {
// contains filtered or unexported fields
}
Array 是一个具有丰富特性的 Go 语言数组。 它包含一个并发安全/不安全切换开关,该开关应在初始化时设置,并且之后不可更改。
func NewFromCopy别名 ¶
NewFromCopy 是 NewArrayFromCopy 的别名。 请参阅 NewArrayFromCopy。
func X创建并从数组复制 ¶
NewArrayFromCopy 通过复制给定切片 `array` 创建并返回一个数组。 参数 `safe` 用于指定是否在并发安全的情况下使用数组,默认为 false。
func (Array) MarshalJSON ¶
MarshalJSON 实现了 json.Marshal 接口所需的 MarshalJSON 方法。 注意:此处接收者不使用指针。
func (*Array) UnmarshalJSON ¶
UnmarshalJSON 实现了 json.Unmarshal 接口的 UnmarshalJSON 方法。
func (*Array) UnmarshalValue ¶
UnmarshalValue 实现了一个接口,该接口用于为数组设置任意类型的值。
func (*Array) X删除所有空值 ¶
FilterEmpty 用于移除数组中所有空值。 下列值被认为是空值:0, nil, false, "", 以及长度为0的slice、map或chan。
func (*Array) X取any数组 ¶
func (a *Array) X取any数组() []interface{}
Interfaces 函数将当前数组转换为 []interface{} 类型并返回。
func (*Array) X取切片 ¶
func (a *Array) X取切片() []interface{}
Slice 返回数组的基础数据。 注意,如果它在并发安全的使用场景下,会返回基础数据的一个副本, 否则,则返回指向基础数据的指针。
func (*Array) X取切片并按数量 ¶
SubSlice 返回数组中由 `offset` 和 `size` 参数指定的元素子序列,并将其作为切片。 若在并发安全场景下使用,返回该切片的副本;否则返回指向切片的指针。
如果 offset 非负,则序列从数组该偏移位置开始。 如果 offset 为负,则序列从数组末尾向前偏移该距离的位置开始。
如果提供了 length 并且为正数,则序列将包含最多该数量的元素。 若数组长度小于 length,则序列仅包含数组中可获得的元素。 如果 length 为负数,则序列将在数组末尾向前停在该距离的位置。 如果未提供 length,则序列包含从 offset 开始直到数组末尾的所有元素。
若有任何可能穿越数组左边界的情况,函数将失败。
func (*Array) X取切片并按范围 ¶
Range 函数通过范围选择并返回数组中的元素,类似于 array[start:end]。 注意:在并发安全的使用场景下,它会返回一个原数据的副本;否则,返回的是底层数据的指针。
如果 `end` 为负数,则偏移量将从数组末尾开始计算。 如果省略了 `end`,则序列将包含从 start 开始直到数组末尾的所有元素。
func (*Array) X合并 ¶
Merge 将`array`合并到当前数组中。 参数`array`可以是任何garray类型或切片类型。 Merge 和 Append 的区别在于,Append 仅支持特定类型的切片作为参数, 而 Merge 支持更多类型的参数。
func (*Array) X填满 ¶
Pad 通过 `value` 值对数组进行填充,以达到指定长度。 如果 size 为正数,则在数组右侧进行填充;若为负数,则在左侧填充。 若 `size` 的绝对值小于或等于数组的长度,则不进行填充操作。
func (*Array) X遍历删除 ¶
Filter 对数组进行迭代,并通过自定义回调函数进行元素过滤。 如果回调函数 `filter` 返回 true,则从数组中移除该元素; 否则不做任何处理并继续迭代。
func (*Array) X遍历升序 ¶
IteratorAsc 以升序遍历给定数组,并使用回调函数 `f` 进行只读操作。 如果 `f` 返回 true,则继续迭代;若返回 false,则停止遍历。
type IntArray ¶
type IntArray struct {
// contains filtered or unexported fields
}
IntArray 是一个具有丰富功能的 Go 语言整数数组。 它包含一个并发安全/不安全切换开关,应在初始化时设置,并且此后不可更改。
func X创建整数并从数组 ¶
NewIntArrayFrom 根据给定的切片 `array` 创建并返回一个数组。 参数 `safe` 用于指定是否在并发安全的情况下使用数组,默认为 false。
func X创建整数并从数组复制 ¶
NewIntArrayFromCopy 通过复制给定切片 `array` 创建并返回一个数组。 参数 `safe` 用于指定是否在并发安全的情况下使用数组,默认为 false。
func (IntArray) MarshalJSON ¶
MarshalJSON 实现了 json.Marshal 接口所需的 MarshalJSON 方法。 注意:此处接收者不使用指针。
Example ¶
type Student struct { Id int Name string Scores 数组类.IntArray } var array 数组类.IntArray array.X设置数组(g.SliceInt别名{98, 97, 96}) s := Student{ Id: 1, Name: "john", Scores: array, } b, _ := json.Marshal(s) fmt.Println(string(b))
Output: {"Id":1,"Name":"john","Scores":[98,97,96]}
func (*IntArray) String ¶
String 方法将当前数组以字符串形式返回,其实现方式类似于 json.Marshal。
Example ¶
s := 数组类.X创建整数并从数组(g.SliceInt别名{10, 20, 15, 30, 40, 50, 60}) fmt.Println(s) fmt.Println(s.String())
Output: [10,20,15,30,40,50,60] [10,20,15,30,40,50,60]
func (*IntArray) UnmarshalJSON ¶
UnmarshalJSON 实现了 json.Unmarshal 接口的 UnmarshalJSON 方法。
Example ¶
b := []byte(`{"Id":1,"Name":"john","Scores":[98,96,97]}`) type Student struct { Id int Name string Scores *数组类.IntArray } s := Student{} json.Unmarshal(b, &s) fmt.Println(s)
Output: {1 john [98,96,97]}
func (*IntArray) UnmarshalValue ¶
UnmarshalValue 实现了一个接口,该接口用于为数组设置任意类型的值。
Example ¶
type Student struct { Name string Scores *数组类.IntArray } var s *Student 转换类.Struct(g.Map{ "name": "john", "scores": g.SliceInt别名{96, 98, 97}, }, &s) fmt.Println(s)
Output: &{john [96,98,97]}
func (*IntArray) X出栈右多个 ¶
PopRights 从数组末尾弹出并返回 `size` 个元素。 若给定的 `size` 大于数组的大小,则返回数组中所有元素。 注意,如果给定的 `size` 小于等于0或者数组为空,它将返回nil。
func (*IntArray) X出栈左多个 ¶
PopLefts 从数组开头弹出并返回 `size` 个元素。 如果给定的 `size` 大于数组的大小,则返回数组中的所有元素。 注意,如果给定的 `size` 小于等于0或者数组为空,则返回nil。
func (*IntArray) X出栈随机多个 ¶
PopRands 随机地从数组中弹出并返回 `size` 个元素。 若给定的 `size` 大于数组的大小,则返回数组中的所有元素。 注意,如果给定的 `size` 小于等于0或者数组为空,它将返回 nil。
func (*IntArray) X取any数组 ¶
func (a *IntArray) X取any数组() []interface{}
Interfaces 函数将当前数组转换为 []interface{} 类型并返回。
func (*IntArray) X取切片并按数量 ¶
SubSlice 返回数组中由 `offset` 和 `size` 参数指定的元素子序列,并将其作为切片。 若在并发安全场景下使用,返回该切片的副本;否则返回指向切片的指针。
如果 offset 非负,则序列从数组该偏移位置开始。 如果 offset 为负,则序列从数组末尾向前偏移该距离的位置开始。
如果提供了 length 并且为正数,则序列将包含最多该数量的元素。 若数组长度小于 length,则序列仅包含数组中可获得的元素。 如果 length 为负数,则序列将在数组末尾向前停在该距离的位置。 如果未提供 length,则序列包含从 offset 开始直到数组末尾的所有元素。
若有任何可能穿越数组左边界的情况,函数将失败。
func (*IntArray) X取切片并按范围 ¶
Range 函数通过范围选择并返回数组中的元素,类似于 array[start:end]。 注意:在并发安全的使用场景下,它会返回一个原数据的副本;否则,返回的是底层数据的指针。
如果 `end` 为负数,则偏移量将从数组末尾开始计算。 如果省略了 `end`,则序列将包含从 start 开始直到数组末尾的所有元素。
func (*IntArray) X合并 ¶
Merge 将`array`合并到当前数组中。 参数`array`可以是任何garray类型或切片类型。 Merge 和 Append 的区别在于,Append 仅支持特定类型的切片作为参数, 而 Merge 支持更多类型的参数。
func (*IntArray) X填满 ¶
Pad 通过 `value` 值对数组进行填充,以达到指定长度。 如果 size 为正数,则在数组右侧进行填充;若为负数,则在左侧填充。 若 `size` 的绝对值小于或等于数组的长度,则不进行填充操作。
func (*IntArray) X遍历删除 ¶
Filter 对数组进行迭代,并通过自定义回调函数进行元素过滤。 如果回调函数 `filter` 返回 true,则从数组中移除该元素; 否则不做任何处理并继续迭代。
func (*IntArray) X遍历升序 ¶
IteratorAsc 以升序遍历给定数组,并使用回调函数 `f` 进行只读操作。 如果 `f` 返回 true,则继续迭代;若返回 false,则停止遍历。
type SortedArray ¶
type SortedArray struct {
// contains filtered or unexported fields
}
SortedArray 是一个具有丰富特性的 Go 语言有序数组。 默认情况下,它使用递增顺序排列,可以通过设置自定义比较器进行更改。 它包含一个并发安全/不安全的切换选项,该选项应在初始化时设置,并且之后不能更改。 示例: ```go SortedArray 是一个Go语言实现的具备多种功能的有序数组。 默认情况下,数组按升序排列,通过设定自定义比较函数可以改变排序方式。 它具备并发安全/非安全模式切换功能,但该选项需在初始化时设定,并且设定后不可再更改。
func X创建排序 ¶
func X创建排序(排序函数 func(a, b interface{}) int, 并发安全 ...bool) *SortedArray
NewSortedArray 创建并返回一个空的排序数组。 参数 `safe` 用于指定是否在并发安全的情况下使用数组,默认为 false。 参数 `comparator` 用于比较数组中要排序的值, 如果它返回值 < 0,表示 `a` < `b`;此时 `a` 将被插入到 `b` 之前; 如果它返回值 = 0,表示 `a` = `b`;此时 `a` 将替换 `b`; 如果它返回值 > 0,表示 `a` > `b`;此时 `a` 将被插入到 `b` 之后。
func X创建排序并从数组 ¶
func X创建排序并从数组(数组 []interface{}, 排序函数 func(a, b interface{}) int, 并发安全 ...bool) *SortedArray
NewSortedArrayFrom 根据给定的切片 `array` 创建并返回一个已排序的数组。 参数 `safe` 用于指定是否在并发安全的情况下使用数组,默认为 false。
func X创建排序并从数组复制 ¶
func X创建排序并从数组复制(数组 []interface{}, 排序函数 func(a, b interface{}) int, 并发安全 ...bool) *SortedArray
NewSortedArrayFromCopy 函数通过复制给定切片 `array` 创建并返回一个已排序的数组。 参数 `safe` 用于指定是否在并发安全的情况下使用数组,默认为 false。
func X创建排序并按大小 ¶
func X创建排序并按大小(大小 int, 排序函数 func(a, b interface{}) int, 并发安全 ...bool) *SortedArray
NewSortedArraySize 根据给定的大小和容量创建并返回一个已排序的数组。 参数 `safe` 用于指定是否在并发安全的情况下使用数组,默认为 false。
func X创建排序并按范围 ¶
func X创建排序并按范围(起点, 终点, 步长 int, 排序函数 func(a, b interface{}) int, 并发安全 ...bool) *SortedArray
NewSortedArrayRange 根据指定的范围从 `start` 到 `end`,并以步长值 `step` 创建并返回一个数组。
func (*SortedArray) Append别名 ¶
func (a *SortedArray) Append别名(值 ...interface{}) *SortedArray
Append 向已排序的数组中添加一个或多个值,数组将始终保持有序。
func (*SortedArray) DeepCopy ¶
func (a *SortedArray) DeepCopy() interface{}
DeepCopy 实现接口,用于当前类型的深度复制。
func (SortedArray) MarshalJSON ¶
func (a SortedArray) MarshalJSON() ([]byte, error)
MarshalJSON 实现了 json.Marshal 接口所需的 MarshalJSON 方法。 注意:此处接收者不使用指针。
func (*SortedArray) String ¶
func (a *SortedArray) String() string
String 方法将当前数组以字符串形式返回,其实现方式类似于 json.Marshal。
func (*SortedArray) UnmarshalJSON ¶
func (a *SortedArray) UnmarshalJSON(b []byte) error
UnmarshalJSON 实现了 json.Unmarshal 接口的 UnmarshalJSON 方法。 注意,该比较器默认设置为字符串比较器。
func (*SortedArray) UnmarshalValue ¶
func (a *SortedArray) UnmarshalValue(value interface{}) (err error)
UnmarshalValue 实现了一个接口,该接口用于为数组设置任何类型的值。 注意,默认情况下比较器设置为字符串比较器。
func (*SortedArray) X入栈右 ¶
func (a *SortedArray) X入栈右(值 ...interface{}) *SortedArray
Add 向有序数组中添加一个或多个值,数组始终保持有序。 它是函数 Append 的别名,请参阅 Append。
func (*SortedArray) X出栈右 ¶
func (a *SortedArray) X出栈右() (值 interface{}, 成功 bool)
PopRight从数组的末尾弹出并返回一个元素。 注意,如果数组为空,则`found`为false。
func (*SortedArray) X出栈右多个 ¶
func (a *SortedArray) X出栈右多个(数量 int) []interface{}
PopRights 从数组末尾弹出并返回 `size` 个元素。
func (*SortedArray) X出栈左 ¶
func (a *SortedArray) X出栈左() (值 interface{}, 成功 bool)
PopLeft 从数组开头弹出并返回一个元素。 注意,如果数组为空,则 `found` 为 false。
func (*SortedArray) X出栈左多个 ¶
func (a *SortedArray) X出栈左多个(数量 int) []interface{}
PopLefts 从数组开头弹出并返回 `size` 个元素。
func (*SortedArray) X出栈随机 ¶
func (a *SortedArray) X出栈随机() (值 interface{}, 成功 bool)
PopRand 随机地从数组中弹出并返回一个元素。 注意,如果数组为空,则 `found` 为 false。
func (*SortedArray) X出栈随机多个 ¶
func (a *SortedArray) X出栈随机多个(数量 int) []interface{}
PopRands 随机地从数组中弹出并返回 `size` 个元素。
func (*SortedArray) X分割 ¶
func (a *SortedArray) X分割(数量 int) [][]interface{}
Chunk 函数将一个数组分割成多个子数组, 每个子数组的大小由参数 `size` 确定。 最后一个子数组可能包含少于 size 个元素。
func (*SortedArray) X删除 ¶
func (a *SortedArray) X删除(索引 int) (值 interface{}, 成功 bool)
Remove 通过索引移除一个元素。 如果给定的 `index` 超出了数组范围,`found` 将为 false。
func (*SortedArray) X删除值 ¶
func (a *SortedArray) X删除值(值 interface{}) bool
RemoveValue 通过值移除一个元素。 若在数组中找到该值,则返回 true,否则(未找到时)返回 false。
func (*SortedArray) X删除多个值 ¶
func (a *SortedArray) X删除多个值(值 ...interface{})
RemoveValues 通过 `values` 移除项目。
func (*SortedArray) X删除所有nil ¶
func (a *SortedArray) X删除所有nil() *SortedArray
FilterNil 移除数组中所有的 nil 值。
func (*SortedArray) X删除所有空值 ¶
func (a *SortedArray) X删除所有空值() *SortedArray
FilterEmpty 用于移除数组中所有空值。 下列值被认为是空值:0, nil, false, "", 以及长度为0的slice、map或chan。
func (*SortedArray) X取any数组 ¶
func (a *SortedArray) X取any数组() []interface{}
Interfaces 函数将当前数组转换为 []interface{} 类型并返回。
func (*SortedArray) X取值 ¶
func (a *SortedArray) X取值(索引 int) (值 interface{})
At通过指定的索引返回值。 如果给定的`index`超出数组范围,它将返回`nil`。
func (*SortedArray) X取值2 ¶
func (a *SortedArray) X取值2(索引 int) (值 interface{}, 成功 bool)
Get 通过指定的索引返回值。 如果给定的 `index` 超出了数组的范围,那么 `found` 将为 false。
func (*SortedArray) X取值随机 ¶
func (a *SortedArray) X取值随机() (值 interface{}, 成功 bool)
Rand 随机地从数组中返回一个元素(不删除)。
func (*SortedArray) X取值随机多个 ¶
func (a *SortedArray) X取值随机多个(数量 int) []interface{}
Rands 随机返回数组中的 `size` 个元素(不删除)。
func (*SortedArray) X取切片 ¶
func (a *SortedArray) X取切片() []interface{}
Slice 返回数组的基础数据。 注意,如果它在并发安全的使用场景下,会返回基础数据的一个副本, 否则,则返回指向基础数据的指针。
func (*SortedArray) X取切片并按数量 ¶
func (a *SortedArray) X取切片并按数量(起点 int, 数量 ...int) []interface{}
SubSlice 返回数组中由 `offset` 和 `size` 参数指定的元素子序列,并将其作为切片。 若在并发安全场景下使用,返回该切片的副本;否则返回指向切片的指针。
如果 offset 非负,则序列从数组该偏移位置开始。 如果 offset 为负,则序列从数组末尾向前偏移该距离的位置开始。
如果提供了 length 并且为正数,则序列将包含最多该数量的元素。 若数组长度小于 length,则序列仅包含数组中可获得的元素。 如果 length 为负数,则序列将在数组末尾向前停在该距离的位置。 如果未提供 length,则序列包含从 offset 开始直到数组末尾的所有元素。
若有任何可能穿越数组左边界的情况,函数将失败。
func (*SortedArray) X取切片并按范围 ¶
func (a *SortedArray) X取切片并按范围(起点 int, 终点 ...int) []interface{}
Range 函数通过范围选择并返回数组中的元素,类似于 array[start:end]。 注意:在并发安全的使用场景下,它会返回一个原数据的副本;否则,返回的是底层数据的指针。
如果 `end` 为负数,则偏移量将从数组末尾开始计算。 如果省略了 `end`,则序列将包含从 start 开始直到数组末尾的所有元素。
func (*SortedArray) X取副本 ¶
func (a *SortedArray) X取副本() (新数组 *SortedArray)
Clone 返回一个新的数组,它是当前数组的一个副本。
func (*SortedArray) X取文本 ¶
func (a *SortedArray) X取文本() string
func (*SortedArray) X合并 ¶
func (a *SortedArray) X合并(数组 interface{}) *SortedArray
Merge 将`array`合并到当前数组中。 参数`array`可以是任何garray类型或切片类型。 Merge 和 Append 的区别在于,Append 仅支持特定类型的切片作为参数, 而 Merge 支持更多类型的参数。
func (*SortedArray) X排序递增 ¶
func (a *SortedArray) X排序递增() *SortedArray
Sort 函数用于将数组按升序排序。 参数 `reverse` 控制排序方式,若 reverse 为 true,则按降序(默认为升序)排序。
func (*SortedArray) X查找 ¶
func (a *SortedArray) X查找(值 interface{}) (索引 int)
Search 在数组中通过 `value` 进行搜索,返回 `value` 的索引, 若不存在,则返回 -1。
func (*SortedArray) X统计 ¶
func (a *SortedArray) X统计() map[interface{}]int
CountValues 计算数组中所有值出现的次数。
func (*SortedArray) X设置去重 ¶
func (a *SortedArray) X设置去重(去重 bool) *SortedArray
SetUnique 将唯一标志设置到数组中, 意味着该数组不包含任何重复的元素。 同时进行唯一性检查,移除所有重复的项。
func (*SortedArray) X设置排序函数 ¶
func (a *SortedArray) X设置排序函数(排序函数 func(a, b interface{}) int)
SetComparator 设置/更改排序的比较器。 当比较器发生改变时,它会重新对数组进行排序。
func (*SortedArray) X设置数组 ¶
func (a *SortedArray) X设置数组(数组 []interface{}) *SortedArray
SetArray 将底层的切片数组设置为给定的 `array`。
func (*SortedArray) X遍历 ¶
func (a *SortedArray) X遍历(回调函数 func(k int, v interface{}) bool)
Iterator 是 IteratorAsc 的别名。
func (*SortedArray) X遍历修改 ¶
func (a *SortedArray) X遍历修改(回调函数 func(值 interface{}) interface{}) *SortedArray
Walk 对数组中的每一项应用用户提供的函数 `f`。
func (*SortedArray) X遍历写锁定 ¶
func (a *SortedArray) X遍历写锁定(回调函数 func(数组 []interface{})) *SortedArray
LockFunc 通过回调函数`f`进行写入锁定。
func (*SortedArray) X遍历删除 ¶
func (a *SortedArray) X遍历删除(回调函数 func(索引 int, 值 interface{}) bool) *SortedArray
Filter 对数组进行迭代,并通过自定义回调函数进行元素过滤。 如果回调函数 `filter` 返回 true,则从数组中移除该元素; 否则不做任何处理并继续迭代。
func (*SortedArray) X遍历升序 ¶
func (a *SortedArray) X遍历升序(回调函数 func(k int, v interface{}) bool)
IteratorAsc 以升序遍历给定数组,并使用回调函数 `f` 进行只读操作。 如果 `f` 返回 true,则继续迭代;若返回 false,则停止遍历。
func (*SortedArray) X遍历读锁定 ¶
func (a *SortedArray) X遍历读锁定(回调函数 func(数组 []interface{})) *SortedArray
RLockFunc 通过回调函数`f`锁定读取操作。
func (*SortedArray) X遍历降序 ¶
func (a *SortedArray) X遍历降序(回调函数 func(k int, v interface{}) bool)
IteratorDesc 函数以降序遍历给定的数组,并使用指定回调函数 `f` 进行只读操作。 若 `f` 返回 true,则继续迭代;若返回 false,则停止迭代。
type SortedIntArray ¶
type SortedIntArray struct {
// contains filtered or unexported fields
}
SortedIntArray 是一个具有丰富功能的Golang有序整数数组。 默认情况下,它按递增顺序排列,但可以通过 设置自定义比较器来改变排序方式。 它包含一个并发安全/不安全的切换选项,该选项应在初始化时设置, 并且之后不可更改。
func X创建整数排序 ¶
func X创建整数排序(并发安全 ...bool) *SortedIntArray
NewSortedIntArray 创建并返回一个空的有序整数数组。 参数`safe`用于指定是否在并发安全的情况下使用数组,默认为false。
func X创建整数排序并从数组 ¶
func X创建整数排序并从数组(数组 []int, 并发安全 ...bool) *SortedIntArray
NewSortedIntArrayFrom 根据给定的切片 `array` 创建并返回一个已排序的数组。 参数 `safe` 用于指定是否在并发安全的情况下使用数组,默认为 false。
func X创建整数排序并从数组复制 ¶
func X创建整数排序并从数组复制(数组 []int, 并发安全 ...bool) *SortedIntArray
NewSortedIntArrayFromCopy 通过复制给定切片`array`创建并返回一个已排序的数组。 参数`safe`用于指定是否在并发安全的情况下使用数组,默认为false。 ```go NewSortedIntArrayFromCopy 函数通过复制给定的切片 `array`,生成并返回一个新的已排序整数数组。 其中参数 `safe` 表示是否需要在并发安全模式下使用该数组,默认情况下为不安全(false)。
func X创建整数排序并带排序函数 ¶
func X创建整数排序并带排序函数(排序函数 func(a, b int) int, 并发安全 ...bool) *SortedIntArray
NewSortedIntArrayComparator 创建并返回一个空的有序数组,使用指定的比较器。 参数`safe`用于指定是否在并发安全的情况下使用数组,默认为false。
func X创建整数排序并按大小 ¶
func X创建整数排序并按大小(大小 int, 并发安全 ...bool) *SortedIntArray
NewSortedIntArraySize 根据给定的大小和容量创建并返回一个已排序的整数数组。 参数`safe`用于指定是否在并发安全的情况下使用数组,默认为false。
func X创建整数排序并按范围 ¶
func X创建整数排序并按范围(起点, 终点, 步长 int, 并发安全 ...bool) *SortedIntArray
NewSortedIntArrayRange 根据给定的范围从 `start` 到 `end`,并以指定的步长 `step` 创建并返回一个已排序的整数数组。
func (*SortedIntArray) Append别名 ¶
func (a *SortedIntArray) Append别名(值 ...int) *SortedIntArray
Append 向已排序的数组中添加一个或多个值,数组将始终保持有序。
func (*SortedIntArray) DeepCopy ¶
func (a *SortedIntArray) DeepCopy() interface{}
DeepCopy 实现接口,用于当前类型的深度复制。
func (SortedIntArray) MarshalJSON ¶
func (a SortedIntArray) MarshalJSON() ([]byte, error)
MarshalJSON 实现了 json.Marshal 接口所需的 MarshalJSON 方法。 注意:此处接收者不使用指针。
func (*SortedIntArray) String ¶
func (a *SortedIntArray) String() string
String 方法将当前数组以字符串形式返回,其实现方式类似于 json.Marshal。
func (*SortedIntArray) UnmarshalJSON ¶
func (a *SortedIntArray) UnmarshalJSON(b []byte) error
UnmarshalJSON 实现了 json.Unmarshal 接口的 UnmarshalJSON 方法。
func (*SortedIntArray) UnmarshalValue ¶
func (a *SortedIntArray) UnmarshalValue(value interface{}) (err error)
UnmarshalValue 实现了一个接口,该接口用于为数组设置任意类型的值。
func (*SortedIntArray) X入栈右 ¶
func (a *SortedIntArray) X入栈右(值 ...int) *SortedIntArray
Add 向有序数组中添加一个或多个值,数组始终保持有序。 它是函数 Append 的别名,请参阅 Append。
func (*SortedIntArray) X出栈右 ¶
func (a *SortedIntArray) X出栈右() (值 int, 成功 bool)
PopRight从数组的末尾弹出并返回一个元素。 注意,如果数组为空,则`found`为false。
func (*SortedIntArray) X出栈右多个 ¶
func (a *SortedIntArray) X出栈右多个(数量 int) []int
PopRights 从数组末尾弹出并返回 `size` 个元素。 若给定的 `size` 大于数组的大小,则返回数组中所有元素。 注意,如果给定的 `size` 小于等于0或者数组为空,它将返回nil。
func (*SortedIntArray) X出栈左 ¶
func (a *SortedIntArray) X出栈左() (值 int, 成功 bool)
PopLeft 从数组开头弹出并返回一个元素。 注意,如果数组为空,则 `found` 为 false。
func (*SortedIntArray) X出栈左多个 ¶
func (a *SortedIntArray) X出栈左多个(数量 int) []int
PopLefts 从数组开头弹出并返回 `size` 个元素。 如果给定的 `size` 大于数组的大小,则返回数组中的所有元素。 注意,如果给定的 `size` 小于等于0或者数组为空,则返回nil。
func (*SortedIntArray) X出栈随机 ¶
func (a *SortedIntArray) X出栈随机() (值 int, 成功 bool)
PopRand 随机地从数组中弹出并返回一个元素。 注意,如果数组为空,则 `found` 为 false。
func (*SortedIntArray) X出栈随机多个 ¶
func (a *SortedIntArray) X出栈随机多个(数量 int) []int
PopRands 随机地从数组中弹出并返回 `size` 个元素。 若给定的 `size` 大于数组的大小,则返回数组中的所有元素。 注意,如果给定的 `size` 小于等于0或者数组为空,它将返回 nil。
func (*SortedIntArray) X分割 ¶
func (a *SortedIntArray) X分割(数量 int) [][]int
Chunk 函数将一个数组分割成多个子数组, 每个子数组的大小由参数 `size` 确定。 最后一个子数组可能包含少于 size 个元素。
func (*SortedIntArray) X删除 ¶
func (a *SortedIntArray) X删除(索引 int) (值 int, 成功 bool)
Remove 通过索引移除一个元素。 如果给定的 `index` 超出了数组范围,`found` 将为 false。
func (*SortedIntArray) X删除值 ¶
func (a *SortedIntArray) X删除值(值 int) bool
RemoveValue 通过值移除一个元素。 若在数组中找到该值,则返回 true,否则(未找到时)返回 false。
func (*SortedIntArray) X删除多个值 ¶
func (a *SortedIntArray) X删除多个值(值 ...int)
RemoveValues 通过 `values` 移除项目。
func (*SortedIntArray) X删除所有空值 ¶
func (a *SortedIntArray) X删除所有空值() *SortedIntArray
FilterEmpty 移除数组中的所有零值。
func (*SortedIntArray) X取any数组 ¶
func (a *SortedIntArray) X取any数组() []interface{}
Interfaces 函数将当前数组转换为 []interface{} 类型并返回。
func (*SortedIntArray) X取值 ¶
func (a *SortedIntArray) X取值(索引 int) (值 int)
At通过指定的索引返回值。 如果给定的`index`超出数组范围,它将返回`0`。
func (*SortedIntArray) X取值2 ¶
func (a *SortedIntArray) X取值2(索引 int) (值 int, 成功 bool)
Get 通过指定的索引返回值。 如果给定的 `index` 超出了数组的范围,那么 `found` 将为 false。
func (*SortedIntArray) X取值随机 ¶
func (a *SortedIntArray) X取值随机() (值 int, 成功 bool)
Rand 随机地从数组中返回一个元素(不删除)。
func (*SortedIntArray) X取值随机多个 ¶
func (a *SortedIntArray) X取值随机多个(数量 int) []int
Rands 随机返回数组中的 `size` 个元素(不删除)。
func (*SortedIntArray) X取切片 ¶
func (a *SortedIntArray) X取切片() []int
Slice 返回数组的基础数据。 注意,如果它在并发安全的使用场景下,会返回基础数据的一个副本, 否则,则返回指向基础数据的指针。
func (*SortedIntArray) X取切片并按数量 ¶
func (a *SortedIntArray) X取切片并按数量(起点 int, 数量 ...int) []int
SubSlice 返回数组中由 `offset` 和 `size` 参数指定的元素子序列,并将其作为切片。 若在并发安全场景下使用,返回该切片的副本;否则返回指向切片的指针。
如果 offset 非负,则序列从数组该偏移位置开始。 如果 offset 为负,则序列从数组末尾向前偏移该距离的位置开始。
如果提供了 length 并且为正数,则序列将包含最多该数量的元素。 若数组长度小于 length,则序列仅包含数组中可获得的元素。 如果 length 为负数,则序列将在数组末尾向前停在该距离的位置。 如果未提供 length,则序列包含从 offset 开始直到数组末尾的所有元素。
若有任何可能穿越数组左边界的情况,函数将失败。
func (*SortedIntArray) X取切片并按范围 ¶
func (a *SortedIntArray) X取切片并按范围(起点 int, 终点 ...int) []int
Range 函数通过范围选择并返回数组中的元素,类似于 array[start:end]。 注意:在并发安全的使用场景下,它会返回一个原数据的副本;否则,返回的是底层数据的指针。
如果 `end` 为负数,则偏移量将从数组末尾开始计算。 如果省略了 `end`,则序列将包含从 start 开始直到数组末尾的所有元素。
func (*SortedIntArray) X取副本 ¶
func (a *SortedIntArray) X取副本() (新数组 *SortedIntArray)
Clone 返回一个新的数组,它是当前数组的一个副本。
func (*SortedIntArray) X取文本 ¶
func (a *SortedIntArray) X取文本() string
func (*SortedIntArray) X合并 ¶
func (a *SortedIntArray) X合并(数组 interface{}) *SortedIntArray
Merge 将`array`合并到当前数组中。 参数`array`可以是任何garray类型或切片类型。 Merge 和 Append 的区别在于,Append 仅支持特定类型的切片作为参数, 而 Merge 支持更多类型的参数。
func (*SortedIntArray) X排序递增 ¶
func (a *SortedIntArray) X排序递增() *SortedIntArray
Sort 函数用于将数组按升序排列。 参数 `reverse` 用于控制排序方式,若为 true 则按降序排列(默认为升序)。
func (*SortedIntArray) X查找 ¶
func (a *SortedIntArray) X查找(值 int) (索引 int)
Search 在数组中通过 `value` 进行搜索,返回 `value` 的索引, 若不存在,则返回 -1。
func (*SortedIntArray) X设置去重 ¶
func (a *SortedIntArray) X设置去重(去重 bool) *SortedIntArray
SetUnique 将唯一标志设置到数组中, 这意味着该数组不包含任何重复的元素。 同时,它还会进行唯一性检查,并移除所有重复的项。
func (*SortedIntArray) X设置数组 ¶
func (a *SortedIntArray) X设置数组(数组 []int) *SortedIntArray
SetArray 将底层的切片数组设置为给定的 `array`。
func (*SortedIntArray) X连接 ¶
func (a *SortedIntArray) X连接(连接符 string) string
Join 通过字符串 `glue` 连接数组元素。
func (*SortedIntArray) X遍历 ¶
func (a *SortedIntArray) X遍历(回调函数 func(k int, v int) bool)
Iterator 是 IteratorAsc 的别名。
func (*SortedIntArray) X遍历修改 ¶
func (a *SortedIntArray) X遍历修改(回调函数 func(值 int) int) *SortedIntArray
Walk 对数组中的每一项应用用户提供的函数 `f`。
func (*SortedIntArray) X遍历写锁定 ¶
func (a *SortedIntArray) X遍历写锁定(回调函数 func(数组 []int)) *SortedIntArray
LockFunc 通过回调函数`f`进行写入锁定。
func (*SortedIntArray) X遍历删除 ¶
func (a *SortedIntArray) X遍历删除(回调函数 func(索引 int, 值 int) bool) *SortedIntArray
Filter 对数组进行迭代,并通过自定义回调函数进行元素过滤。 如果回调函数 `filter` 返回 true,则从数组中移除该元素; 否则不做任何处理并继续迭代。
func (*SortedIntArray) X遍历升序 ¶
func (a *SortedIntArray) X遍历升序(回调函数 func(k int, v int) bool)
IteratorAsc 以升序遍历给定数组,并使用回调函数 `f` 进行只读操作。 如果 `f` 返回 true,则继续迭代;若返回 false,则停止遍历。
func (*SortedIntArray) X遍历读锁定 ¶
func (a *SortedIntArray) X遍历读锁定(回调函数 func(数组 []int)) *SortedIntArray
RLockFunc 通过回调函数`f`锁定读取操作。
type SortedStrArray ¶
type SortedStrArray struct {
// contains filtered or unexported fields
}
SortedStrArray 是一个具有丰富特性的 Go 语言有序字符串数组。 默认情况下,它按升序排列,但可以通过设置自定义比较器来改变排序方式。 它包含一个并发安全/非安全切换选项,该选项应在初始化时设定,并且一旦设定后不可更改。
func X创建文本排序 ¶
func X创建文本排序(并发安全 ...bool) *SortedStrArray
NewSortedStrArray 创建并返回一个空的已排序数组。 参数`safe`用于指定是否在并发安全的情况下使用数组,默认为false。
func X创建文本排序并从数组 ¶
func X创建文本排序并从数组(数组 []string, 并发安全 ...bool) *SortedStrArray
NewSortedStrArrayFrom 通过给定的切片`array`创建并返回一个已排序的数组。 参数`safe`用于指定是否在并发安全的情况下使用数组,默认为false。
func X创建文本排序并从数组复制 ¶
func X创建文本排序并从数组复制(数组 []string, 并发安全 ...bool) *SortedStrArray
NewSortedStrArrayFromCopy 通过复制给定切片 `array` 创建并返回一个已排序的数组。 参数 `safe` 用于指定是否在并发安全的情况下使用数组,默认为 false。
func X创建文本排序并带排序函数 ¶
func X创建文本排序并带排序函数(排序函数 func(a, b string) int, 并发安全 ...bool) *SortedStrArray
NewSortedStrArrayComparator 创建并返回一个根据指定比较器排序的空数组。 参数`safe`用于指定是否在并发安全的情况下使用数组,默认为false。
func X创建文本排序并按大小 ¶
func X创建文本排序并按大小(大小 int, 并发安全 ...bool) *SortedStrArray
NewSortedStrArraySize 根据给定的大小和容量创建并返回一个已排序的数组。 参数 `safe` 用于指定是否在并发安全环境下使用该数组,默认为 false。
func (*SortedStrArray) Append别名 ¶
func (a *SortedStrArray) Append别名(值 ...string) *SortedStrArray
Append 向已排序的数组中添加一个或多个值,数组将始终保持有序。
func (*SortedStrArray) DeepCopy ¶
func (a *SortedStrArray) DeepCopy() interface{}
DeepCopy 实现接口,用于当前类型的深度复制。
func (SortedStrArray) MarshalJSON ¶
func (a SortedStrArray) MarshalJSON() ([]byte, error)
MarshalJSON 实现了 json.Marshal 接口所需的 MarshalJSON 方法。 注意:此处接收者不使用指针。
Example ¶
type Student struct { ID int Name string Levels 数组类.SortedStrArray } r := 数组类.X创建文本排序并从数组(g.SliceStr别名{"b", "c", "a"}) s := Student{ ID: 1, Name: "john", Levels: *r, } b, _ := json.Marshal(s) fmt.Println(string(b))
Output: {"ID":1,"Name":"john","Levels":["a","b","c"]}
func (*SortedStrArray) String ¶
func (a *SortedStrArray) String() string
String 方法将当前数组以字符串形式返回,其实现方式类似于 json.Marshal。
Example ¶
s := 数组类.X创建文本排序并从数组(g.SliceStr别名{"b", "c", "a"}) fmt.Println(s.String())
Output: ["a","b","c"]
func (*SortedStrArray) UnmarshalJSON ¶
func (a *SortedStrArray) UnmarshalJSON(b []byte) error
UnmarshalJSON 实现了 json.Unmarshal 接口的 UnmarshalJSON 方法。
Example ¶
b := []byte(`{"Id":1,"Name":"john","Lessons":["Math","English","Sport"]}`) type Student struct { Id int Name string Lessons *数组类.StrArray } s := Student{} json.Unmarshal(b, &s) fmt.Println(s)
Output: {1 john ["Math","English","Sport"]}
func (*SortedStrArray) UnmarshalValue ¶
func (a *SortedStrArray) UnmarshalValue(value interface{}) (err error)
UnmarshalValue 实现了一个接口,该接口用于为数组设置任意类型的值。
Example ¶
type Student struct { Name string Lessons *数组类.StrArray } var s *Student 转换类.Struct(g.Map{ "name": "john", "lessons": []byte(`["Math","English","Sport"]`), }, &s) fmt.Println(s) var s1 *Student 转换类.Struct(g.Map{ "name": "john", "lessons": g.SliceStr别名{"Math", "English", "Sport"}, }, &s1) fmt.Println(s1)
Output: &{john ["Math","English","Sport"]} &{john ["Math","English","Sport"]}
func (*SortedStrArray) X入栈右 ¶
func (a *SortedStrArray) X入栈右(值 ...string) *SortedStrArray
Add 向有序数组中添加一个或多个值,数组始终保持有序。 它是函数 Append 的别名,请参阅 Append。
func (*SortedStrArray) X出栈右 ¶
func (a *SortedStrArray) X出栈右() (值 string, 成功 bool)
PopRight从数组的末尾弹出并返回一个元素。 注意,如果数组为空,则`found`为false。
func (*SortedStrArray) X出栈右多个 ¶
func (a *SortedStrArray) X出栈右多个(数量 int) []string
PopRights 从数组末尾弹出并返回 `size` 个元素。 若给定的 `size` 大于数组的大小,则返回数组中所有元素。 注意,如果给定的 `size` 小于等于0或者数组为空,它将返回nil。
func (*SortedStrArray) X出栈左 ¶
func (a *SortedStrArray) X出栈左() (值 string, 成功 bool)
PopLeft 从数组开头弹出并返回一个元素。 注意,如果数组为空,则 `found` 为 false。
func (*SortedStrArray) X出栈左多个 ¶
func (a *SortedStrArray) X出栈左多个(数量 int) []string
PopLefts 从数组开头弹出并返回 `size` 个元素。 如果给定的 `size` 大于数组的大小,则返回数组中的所有元素。 注意,如果给定的 `size` 小于等于0或者数组为空,则返回nil。
func (*SortedStrArray) X出栈随机 ¶
func (a *SortedStrArray) X出栈随机() (值 string, 成功 bool)
PopRand 随机地从数组中弹出并返回一个元素。 注意,如果数组为空,则 `found` 为 false。
func (*SortedStrArray) X出栈随机多个 ¶
func (a *SortedStrArray) X出栈随机多个(数量 int) []string
PopRands 随机地从数组中弹出并返回 `size` 个元素。 若给定的 `size` 大于数组的大小,则返回数组中的所有元素。 注意,如果给定的 `size` 小于等于0或者数组为空,它将返回 nil。
func (*SortedStrArray) X分割 ¶
func (a *SortedStrArray) X分割(数量 int) [][]string
Chunk 函数将一个数组分割成多个子数组, 每个子数组的大小由参数 `size` 确定。 最后一个子数组可能包含少于 size 个元素。
func (*SortedStrArray) X删除 ¶
func (a *SortedStrArray) X删除(索引 int) (值 string, 成功 bool)
Remove 通过索引移除一个元素。 如果给定的 `index` 超出了数组范围,`found` 将为 false。
func (*SortedStrArray) X删除值 ¶
func (a *SortedStrArray) X删除值(值 string) bool
RemoveValue 通过值移除一个元素。 若在数组中找到该值,则返回 true,否则(未找到时)返回 false。
func (*SortedStrArray) X删除多个值 ¶
func (a *SortedStrArray) X删除多个值(值 ...string)
RemoveValues 通过 `values` 移除项目。
func (*SortedStrArray) X删除所有空值 ¶
func (a *SortedStrArray) X删除所有空值() *SortedStrArray
FilterEmpty 从数组中移除所有空字符串值。
func (*SortedStrArray) X取any数组 ¶
func (a *SortedStrArray) X取any数组() []interface{}
Interfaces 函数将当前数组转换为 []interface{} 类型并返回。
func (*SortedStrArray) X取值 ¶
func (a *SortedStrArray) X取值(索引 int) (值 string)
At 通过指定的索引返回值。 如果给定的 `index` 超出了数组的范围,它将返回一个空字符串。
func (*SortedStrArray) X取值2 ¶
func (a *SortedStrArray) X取值2(索引 int) (值 string, 成功 bool)
Get 通过指定的索引返回值。 如果给定的 `index` 超出了数组的范围,那么 `found` 将为 false。
func (*SortedStrArray) X取值随机 ¶
func (a *SortedStrArray) X取值随机() (值 string, 成功 bool)
Rand 随机地从数组中返回一个元素(不删除)。
func (*SortedStrArray) X取值随机多个 ¶
func (a *SortedStrArray) X取值随机多个(数量 int) []string
Rands 随机返回数组中的 `size` 个元素(不删除)。
func (*SortedStrArray) X取切片 ¶
func (a *SortedStrArray) X取切片() []string
Slice 返回数组的基础数据。 注意,如果它在并发安全的使用场景下,会返回基础数据的一个副本, 否则,则返回指向基础数据的指针。
func (*SortedStrArray) X取切片并按数量 ¶
func (a *SortedStrArray) X取切片并按数量(起点 int, 数量 ...int) []string
SubSlice 返回数组中由 `offset` 和 `size` 参数指定的元素子序列,并将其作为切片。 若在并发安全场景下使用,返回该切片的副本;否则返回指向切片的指针。
如果 offset 非负,则序列从数组该偏移位置开始。 如果 offset 为负,则序列从数组末尾向前偏移该距离的位置开始。
如果提供了 length 并且为正数,则序列将包含最多该数量的元素。 若数组长度小于 length,则序列仅包含数组中可获得的元素。 如果 length 为负数,则序列将在数组末尾向前停在该距离的位置。 如果未提供 length,则序列包含从 offset 开始直到数组末尾的所有元素。
若有任何可能穿越数组左边界的情况,函数将失败。
func (*SortedStrArray) X取切片并按范围 ¶
func (a *SortedStrArray) X取切片并按范围(起点 int, 终点 ...int) []string
Range 函数通过范围选择并返回数组中的元素,类似于 array[start:end]。 注意:在并发安全的使用场景下,它会返回一个原数据的副本;否则,返回的是底层数据的指针。
如果 `end` 为负数,则偏移量将从数组末尾开始计算。 如果省略了 `end`,则序列将包含从 start 开始直到数组末尾的所有元素。
func (*SortedStrArray) X取副本 ¶
func (a *SortedStrArray) X取副本() (新数组 *SortedStrArray)
Clone 返回一个新的数组,它是当前数组的一个副本。
func (*SortedStrArray) X取文本 ¶
func (a *SortedStrArray) X取文本() string
func (*SortedStrArray) X合并 ¶
func (a *SortedStrArray) X合并(数组 interface{}) *SortedStrArray
Merge 将`array`合并到当前数组中。 参数`array`可以是任何garray类型或切片类型。 Merge 和 Append 的区别在于,Append 仅支持特定类型的切片作为参数, 而 Merge 支持更多类型的参数。
func (*SortedStrArray) X排序递增 ¶
func (a *SortedStrArray) X排序递增() *SortedStrArray
Sort 函数用于将数组按升序排列。 参数 `reverse` 用于控制排序方式,若为 true 则按降序排列(默认为升序)。
func (*SortedStrArray) X是否存在 ¶
func (a *SortedStrArray) X是否存在(值 string) bool
Contains 检查某个值是否存在于数组中。
func (*SortedStrArray) X是否存在并忽略大小写 ¶
func (a *SortedStrArray) X是否存在并忽略大小写(值 string) bool
ContainsI 检查一个值是否以不区分大小写的方式存在于数组中。 注意,它在内部会遍历整个数组并进行不区分大小写的比较。
func (*SortedStrArray) X查找 ¶
func (a *SortedStrArray) X查找(值 string) (索引 int)
Search 在数组中通过 `value` 进行搜索,返回 `value` 的索引, 若不存在,则返回 -1。
func (*SortedStrArray) X统计 ¶
func (a *SortedStrArray) X统计() map[string]int
CountValues 计算数组中所有值出现的次数。
func (*SortedStrArray) X设置去重 ¶
func (a *SortedStrArray) X设置去重(去重 bool) *SortedStrArray
SetUnique 将唯一标志设置到数组中, 这意味着该数组不包含任何重复的元素。 同时,它还会进行唯一性检查,并移除所有重复的项。
func (*SortedStrArray) X设置数组 ¶
func (a *SortedStrArray) X设置数组(数组 []string) *SortedStrArray
SetArray 将底层的切片数组设置为给定的 `array`。
func (*SortedStrArray) X连接 ¶
func (a *SortedStrArray) X连接(连接符 string) string
Join 通过字符串 `glue` 连接数组元素。
func (*SortedStrArray) X遍历 ¶
func (a *SortedStrArray) X遍历(回调函数 func(k int, v string) bool)
Iterator 是 IteratorAsc 的别名。
func (*SortedStrArray) X遍历修改 ¶
func (a *SortedStrArray) X遍历修改(回调函数 func(值 string) string) *SortedStrArray
Walk 对数组中的每一项应用用户提供的函数 `f`。
func (*SortedStrArray) X遍历写锁定 ¶
func (a *SortedStrArray) X遍历写锁定(回调函数 func(数组 []string)) *SortedStrArray
LockFunc 通过回调函数`f`进行写入锁定。
func (*SortedStrArray) X遍历删除 ¶
func (a *SortedStrArray) X遍历删除(回调函数 func(索引 int, 值 string) bool) *SortedStrArray
Filter 对数组进行迭代,并通过自定义回调函数进行元素过滤。 如果回调函数 `filter` 返回 true,则从数组中移除该元素; 否则不做任何处理并继续迭代。
func (*SortedStrArray) X遍历升序 ¶
func (a *SortedStrArray) X遍历升序(回调函数 func(k int, v string) bool)
IteratorAsc 以升序遍历给定数组,并使用回调函数 `f` 进行只读操作。 如果 `f` 返回 true,则继续迭代;若返回 false,则停止遍历。
func (*SortedStrArray) X遍历读锁定 ¶
func (a *SortedStrArray) X遍历读锁定(回调函数 func(数组 []string)) *SortedStrArray
RLockFunc 通过回调函数`f`锁定读取操作。
type StrArray ¶
type StrArray struct {
// contains filtered or unexported fields
}
StrArray 是一个具有丰富特性的 Go 语言字符串数组。 它包含一个并发安全/不安全的开关,在初始化时应设置该开关,之后不可更改。 ```go StrArray 是一个功能丰富的 Golang 字符串数组类型。 其中包含一个并发安全模式切换选项,应在初始化时设定,并且一旦设定后不可再更改。
func X创建文本并从数组 ¶
NewStrArrayFrom 根据给定的切片 `array` 创建并返回一个数组。 参数 `safe` 用于指定是否在并发安全的情况下使用数组,默认为 false。
func X创建文本并从数组复制 ¶
NewStrArrayFromCopy 通过复制给定切片 `array` 创建并返回一个数组。 参数 `safe` 用于指定是否在并发安全环境下使用该数组,默认为 false。
func (StrArray) MarshalJSON ¶
MarshalJSON 实现了 json.Marshal 接口所需的 MarshalJSON 方法。 注意:此处接收者不使用指针。
Example ¶
package main import ( "fmt" "github.com/888go/goframe/internal/json" ) func main() { type Student struct { Id int Name string Lessons []string } s := Student{ Id: 1, Name: "john", Lessons: []string{"Math", "English", "Music"}, } b, _ := json.Marshal(s) fmt.Println(string(b)) }
Output: {"Id":1,"Name":"john","Lessons":["Math","English","Music"]}
func (*StrArray) String ¶
String 方法将当前数组以字符串形式返回,其实现方式类似于 json.Marshal。
Example ¶
s := 数组类.X创建文本并从数组(g.SliceStr别名{"a", "b", "c"}) fmt.Println(s.String())
Output: ["a","b","c"]
func (*StrArray) UnmarshalJSON ¶
UnmarshalJSON 实现了 json.Unmarshal 接口的 UnmarshalJSON 方法。
Example ¶
b := []byte(`{"Id":1,"Name":"john","Lessons":["Math","English","Sport"]}`) type Student struct { Id int Name string Lessons *数组类.StrArray } s := Student{} json.Unmarshal(b, &s) fmt.Println(s)
Output: {1 john ["Math","English","Sport"]}
func (*StrArray) UnmarshalValue ¶
UnmarshalValue 实现了一个接口,该接口用于为数组设置任意类型的值。
Example ¶
type Student struct { Name string Lessons *数组类.StrArray } var s *Student 转换类.Struct(g.Map{ "name": "john", "lessons": []byte(`["Math","English","Sport"]`), }, &s) fmt.Println(s) var s1 *Student 转换类.Struct(g.Map{ "name": "john", "lessons": g.SliceStr别名{"Math", "English", "Sport"}, }, &s1) fmt.Println(s1)
Output: &{john ["Math","English","Sport"]} &{john ["Math","English","Sport"]}
func (*StrArray) X出栈右多个 ¶
PopRights 从数组末尾弹出并返回 `size` 个元素。 若给定的 `size` 大于数组的大小,则返回数组中所有元素。 注意,如果给定的 `size` 小于等于0或者数组为空,它将返回nil。
func (*StrArray) X出栈左多个 ¶
PopLefts 从数组开头弹出并返回 `size` 个元素。 如果给定的 `size` 大于数组的大小,则返回数组中的所有元素。 注意,如果给定的 `size` 小于等于0或者数组为空,则返回nil。
func (*StrArray) X出栈随机多个 ¶
PopRands 随机地从数组中弹出并返回 `size` 个元素。 若给定的 `size` 大于数组的大小,则返回数组中的所有元素。 注意,如果给定的 `size` 小于等于0或者数组为空,它将返回 nil。
func (*StrArray) X取any数组 ¶
func (a *StrArray) X取any数组() []interface{}
Interfaces 函数将当前数组转换为 []interface{} 类型并返回。
func (*StrArray) X取切片并按数量 ¶
SubSlice 返回数组中由 `offset` 和 `size` 参数指定的元素子序列,并将其作为切片。 若在并发安全场景下使用,返回该切片的副本;否则返回指向切片的指针。
如果 offset 非负,则序列从数组该偏移位置开始。 如果 offset 为负,则序列从数组末尾向前偏移该距离的位置开始。
如果提供了 length 并且为正数,则序列将包含最多该数量的元素。 若数组长度小于 length,则序列仅包含数组中可获得的元素。 如果 length 为负数,则序列将在数组末尾向前停在该距离的位置。 如果未提供 length,则序列包含从 offset 开始直到数组末尾的所有元素。
若有任何可能穿越数组左边界的情况,函数将失败。
func (*StrArray) X取切片并按范围 ¶
Range 函数通过范围选择并返回数组中的元素,类似于 array[start:end]。 注意:在并发安全的使用场景下,它会返回一个原数据的副本;否则,返回的是底层数据的指针。
如果 `end` 为负数,则偏移量将从数组末尾开始计算。 如果省略了 `end`,则序列将包含从 start 开始直到数组末尾的所有元素。
func (*StrArray) X合并 ¶
Merge 将`array`合并到当前数组中。 参数`array`可以是任何garray类型或切片类型。 Merge 和 Append 的区别在于,Append 仅支持特定类型的切片作为参数, 而 Merge 支持更多类型的参数。
func (*StrArray) X填满 ¶
Pad 通过 `value` 值对数组进行填充,以达到指定长度。 如果 size 为正数,则在数组右侧进行填充;若为负数,则在左侧填充。 若 `size` 的绝对值小于或等于数组的长度,则不进行填充操作。
func (*StrArray) X是否存在并忽略大小写 ¶
ContainsI 检查一个值是否以不区分大小写的方式存在于数组中。 注意,它在内部会遍历整个数组并进行不区分大小写的比较。
func (*StrArray) X遍历删除 ¶
Filter 对数组进行迭代,并通过自定义回调函数进行元素过滤。 如果回调函数 `filter` 返回 true,则从数组中移除该元素; 否则不做任何处理并继续迭代。
func (*StrArray) X遍历升序 ¶
IteratorAsc 以升序遍历给定数组,并使用回调函数 `f` 进行只读操作。 如果 `f` 返回 true,则继续迭代;若返回 false,则停止遍历。