Documentation ¶
Overview ¶
Package garray provides kinds of concurrent-safe(alternative) arrays.
并发安全数组.
Example (Basic) ¶
package main import ( "fmt" "github.com/gogf/gf/g/container/garray" ) func main() { // 创建普通的数组,默认并发安全(带锁) a := garray.New() // 添加数据项 for i := 0; i < 10; i++ { a.Append(i) } // 获取当前数组长度 fmt.Println(a.Len()) // 获取当前数据项列表 fmt.Println(a.Slice()) // 获取指定索引项 fmt.Println(a.Get(6)) // 查找指定数据项是否存在 fmt.Println(a.Contains(6)) fmt.Println(a.Contains(100)) // 在指定索引前插入数据项 a.InsertAfter(9, 11) // 在指定索引后插入数据项 a.InsertBefore(10, 10) fmt.Println(a.Slice()) // 修改指定索引的数据项 a.Set(0, 100) fmt.Println(a.Slice()) // 搜索数据项,返回搜索到的索引位置 fmt.Println(a.Search(5)) // 删除指定索引的数据项 a.Remove(0) fmt.Println(a.Slice()) // 清空数组 fmt.Println(a.Slice()) a.Clear() fmt.Println(a.Slice()) }
Output: 10 [0 1 2 3 4 5 6 7 8 9] 6 true false [0 1 2 3 4 5 6 7 8 9 10 11] [100 1 2 3 4 5 6 7 8 9 10 11] 5 [1 2 3 4 5 6 7 8 9 10 11] [1 2 3 4 5 6 7 8 9 10 11] []
Example (Merge) ¶
package main import ( "fmt" "github.com/gogf/gf/g/container/garray" ) func main() { array1 := garray.NewFrom([]interface{}{1, 2}) array2 := garray.NewFrom([]interface{}{3, 4}) slice1 := []interface{}{5, 6} slice2 := []int{7, 8} slice3 := []string{"9", "0"} fmt.Println(array1.Slice()) array1.Merge(array1) array1.Merge(array2) array1.Merge(slice1) array1.Merge(slice2) array1.Merge(slice3) fmt.Println(array1.Slice()) }
Output: [1 2] [1 2 1 2 3 4 5 6 7 8 9 0]
Example (Pop) ¶
package main import ( "fmt" "github.com/gogf/gf/g/container/garray" ) func main() { array := garray.NewFrom([]interface{}{1, 2, 3, 4, 5, 6, 7, 8, 9}) fmt.Println(array.PopLeft()) fmt.Println(array.PopLefts(2)) fmt.Println(array.PopRight()) fmt.Println(array.PopRights(2)) }
Output: 1 [2 3] 9 [7 8]
Example (Rand) ¶
package main import ( "fmt" "github.com/gogf/gf/g/container/garray" ) func main() { array := garray.NewFrom([]interface{}{1, 2, 3, 4, 5, 6, 7, 8, 9}) // 随机返回两个数据项(不删除) fmt.Println(array.Rands(2)) fmt.Println(array.PopRand()) }
Output:
Index ¶
- type Array
- func New(unsafe ...bool) *Array
- func NewArray(unsafe ...bool) *Array
- func NewArrayFrom(array []interface{}, unsafe ...bool) *Array
- func NewArrayFromCopy(array []interface{}, unsafe ...bool) *Array
- func NewArraySize(size int, cap int, unsafe ...bool) *Array
- func NewFrom(array []interface{}, unsafe ...bool) *Array
- func NewFromCopy(array []interface{}, unsafe ...bool) *Array
- func (a *Array) Append(value ...interface{}) *Array
- func (a *Array) Chunk(size int) [][]interface{}
- func (a *Array) Clear() *Array
- func (a *Array) Clone() (newArray *Array)
- func (a *Array) Contains(value interface{}) bool
- func (a *Array) CountValues() map[interface{}]int
- func (a *Array) Fill(startIndex int, num int, value interface{}) *Array
- func (a *Array) Get(index int) interface{}
- func (a *Array) InsertAfter(index int, value interface{}) *Array
- func (a *Array) InsertBefore(index int, value interface{}) *Array
- func (a *Array) Join(glue string) string
- func (a *Array) Len() int
- func (a *Array) LockFunc(f func(array []interface{})) *Array
- func (a *Array) Merge(array interface{}) *Array
- func (a *Array) Pad(size int, val interface{}) *Array
- func (a *Array) PopLeft() interface{}
- func (a *Array) PopLefts(size int) []interface{}
- func (a *Array) PopRand() interface{}
- func (a *Array) PopRands(size int) []interface{}
- func (a *Array) PopRight() interface{}
- func (a *Array) PopRights(size int) []interface{}
- func (a *Array) PushLeft(value ...interface{}) *Array
- func (a *Array) PushRight(value ...interface{}) *Array
- func (a *Array) RLockFunc(f func(array []interface{})) *Array
- func (a *Array) Rand() interface{}
- func (a *Array) Rands(size int) []interface{}
- func (a *Array) Range(start, end int) []interface{}
- func (a *Array) Remove(index int) interface{}
- func (a *Array) Replace(array []interface{}) *Array
- func (a *Array) Reverse() *Array
- func (a *Array) Search(value interface{}) int
- func (a *Array) Set(index int, value interface{}) *Array
- func (a *Array) SetArray(array []interface{}) *Array
- func (a *Array) Shuffle() *Array
- func (a *Array) Slice() []interface{}
- func (a *Array) SortFunc(less func(v1, v2 interface{}) bool) *Array
- func (a *Array) String() string
- func (a *Array) SubSlice(offset, size int) []interface{}
- func (a *Array) Sum() (sum int)
- func (a *Array) Unique() *Array
- type IntArray
- func (a *IntArray) Append(value ...int) *IntArray
- func (a *IntArray) Chunk(size int) [][]int
- func (a *IntArray) Clear() *IntArray
- func (a *IntArray) Clone() (newArray *IntArray)
- func (a *IntArray) Contains(value int) bool
- func (a *IntArray) Fill(startIndex int, num int, value int) *IntArray
- func (a *IntArray) Get(index int) int
- func (a *IntArray) InsertAfter(index int, value int) *IntArray
- func (a *IntArray) InsertBefore(index int, value int) *IntArray
- func (a *IntArray) Join(glue string) string
- func (a *IntArray) Len() int
- func (a *IntArray) LockFunc(f func(array []int)) *IntArray
- func (a *IntArray) Merge(array interface{}) *IntArray
- func (a *IntArray) Pad(size int, value int) *IntArray
- func (a *IntArray) PopLeft() int
- func (a *IntArray) PopLefts(size int) []int
- func (a *IntArray) PopRand() int
- func (a *IntArray) PopRands(size int) []int
- func (a *IntArray) PopRight() int
- func (a *IntArray) PopRights(size int) []int
- func (a *IntArray) PushLeft(value ...int) *IntArray
- func (a *IntArray) PushRight(value ...int) *IntArray
- func (a *IntArray) RLockFunc(f func(array []int)) *IntArray
- func (a *IntArray) Rand() int
- func (a *IntArray) Rands(size int) []int
- func (a *IntArray) Range(start, end int) []int
- func (a *IntArray) Remove(index int) int
- func (a *IntArray) Replace(array []int) *IntArray
- func (a *IntArray) Reverse() *IntArray
- func (a *IntArray) Search(value int) int
- func (a *IntArray) Set(index int, value int) *IntArray
- func (a *IntArray) SetArray(array []int) *IntArray
- func (a *IntArray) Shuffle() *IntArray
- func (a *IntArray) Slice() []int
- func (a *IntArray) Sort(reverse ...bool) *IntArray
- func (a *IntArray) SortFunc(less func(v1, v2 int) bool) *IntArray
- func (a *IntArray) SubSlice(offset, size int) []int
- func (a *IntArray) Sum() (sum int)
- func (a *IntArray) Unique() *IntArray
- type SortedArray
- func NewSortedArray(compareFunc func(v1, v2 interface{}) int, unsafe ...bool) *SortedArray
- func NewSortedArrayFrom(array []interface{}, compareFunc func(v1, v2 interface{}) int, unsafe ...bool) *SortedArray
- func NewSortedArrayFromCopy(array []interface{}, unsafe ...bool) *SortedArray
- func NewSortedArraySize(cap int, compareFunc func(v1, v2 interface{}) int, unsafe ...bool) *SortedArray
- func (a *SortedArray) Add(values ...interface{}) *SortedArray
- func (a *SortedArray) Chunk(size int) [][]interface{}
- func (a *SortedArray) Clear() *SortedArray
- func (a *SortedArray) Clone() (newArray *SortedArray)
- func (a *SortedArray) Contains(value interface{}) bool
- func (a *SortedArray) Get(index int) interface{}
- func (a *SortedArray) Join(glue string) string
- func (a *SortedArray) Len() int
- func (a *SortedArray) LockFunc(f func(array []interface{})) *SortedArray
- func (a *SortedArray) Merge(array interface{}) *SortedArray
- func (a *SortedArray) PopLeft() interface{}
- func (a *SortedArray) PopLefts(size int) []interface{}
- func (a *SortedArray) PopRand() interface{}
- func (a *SortedArray) PopRands(size int) []interface{}
- func (a *SortedArray) PopRight() interface{}
- func (a *SortedArray) PopRights(size int) []interface{}
- func (a *SortedArray) RLockFunc(f func(array []interface{})) *SortedArray
- func (a *SortedArray) Rand() interface{}
- func (a *SortedArray) Rands(size int) []interface{}
- func (a *SortedArray) Range(start, end int) []interface{}
- func (a *SortedArray) Remove(index int) interface{}
- func (a *SortedArray) Search(value interface{}) (index int)
- func (a *SortedArray) SetArray(array []interface{}) *SortedArray
- func (a *SortedArray) SetUnique(unique bool) *SortedArray
- func (a *SortedArray) Slice() []interface{}
- func (a *SortedArray) Sort() *SortedArray
- func (a *SortedArray) SubSlice(offset, size int) []interface{}
- func (a *SortedArray) Sum() (sum int)
- func (a *SortedArray) Unique() *SortedArray
- type SortedIntArray
- func (a *SortedIntArray) Add(values ...int) *SortedIntArray
- func (a *SortedIntArray) Chunk(size int) [][]int
- func (a *SortedIntArray) Clear() *SortedIntArray
- func (a *SortedIntArray) Clone() (newArray *SortedIntArray)
- func (a *SortedIntArray) Contains(value int) bool
- func (a *SortedIntArray) Get(index int) int
- func (a *SortedIntArray) Join(glue string) string
- func (a *SortedIntArray) Len() int
- func (a *SortedIntArray) LockFunc(f func(array []int)) *SortedIntArray
- func (a *SortedIntArray) Merge(array interface{}) *SortedIntArray
- func (a *SortedIntArray) PopLeft() int
- func (a *SortedIntArray) PopLefts(size int) []int
- func (a *SortedIntArray) PopRand() int
- func (a *SortedIntArray) PopRands(size int) []int
- func (a *SortedIntArray) PopRight() int
- func (a *SortedIntArray) PopRights(size int) []int
- func (a *SortedIntArray) RLockFunc(f func(array []int)) *SortedIntArray
- func (a *SortedIntArray) Rand() int
- func (a *SortedIntArray) Rands(size int) []int
- func (a *SortedIntArray) Range(start, end int) []int
- func (a *SortedIntArray) Remove(index int) int
- func (a *SortedIntArray) Search(value int) (index int)
- func (a *SortedIntArray) SetArray(array []int) *SortedIntArray
- func (a *SortedIntArray) SetUnique(unique bool) *SortedIntArray
- func (a *SortedIntArray) Slice() []int
- func (a *SortedIntArray) Sort() *SortedIntArray
- func (a *SortedIntArray) SubSlice(offset, size int) []int
- func (a *SortedIntArray) Sum() (sum int)
- func (a *SortedIntArray) Unique() *SortedIntArray
- type SortedStringArray
- func NewSortedStringArray(unsafe ...bool) *SortedStringArray
- func NewSortedStringArrayFrom(array []string, unsafe ...bool) *SortedStringArray
- func NewSortedStringArrayFromCopy(array []string, unsafe ...bool) *SortedStringArray
- func NewSortedStringArraySize(cap int, unsafe ...bool) *SortedStringArray
- func (a *SortedStringArray) Add(values ...string) *SortedStringArray
- func (a *SortedStringArray) Chunk(size int) [][]string
- func (a *SortedStringArray) Clear() *SortedStringArray
- func (a *SortedStringArray) Clone() (newArray *SortedStringArray)
- func (a *SortedStringArray) Contains(value string) bool
- func (a *SortedStringArray) Get(index int) string
- func (a *SortedStringArray) Join(glue string) string
- func (a *SortedStringArray) Len() int
- func (a *SortedStringArray) LockFunc(f func(array []string)) *SortedStringArray
- func (a *SortedStringArray) Merge(array interface{}) *SortedStringArray
- func (a *SortedStringArray) PopLeft() string
- func (a *SortedStringArray) PopLefts(size int) []string
- func (a *SortedStringArray) PopRand() string
- func (a *SortedStringArray) PopRands(size int) []string
- func (a *SortedStringArray) PopRight() string
- func (a *SortedStringArray) PopRights(size int) []string
- func (a *SortedStringArray) RLockFunc(f func(array []string)) *SortedStringArray
- func (a *SortedStringArray) Rand() string
- func (a *SortedStringArray) Rands(size int) []string
- func (a *SortedStringArray) Range(start, end int) []string
- func (a *SortedStringArray) Remove(index int) string
- func (a *SortedStringArray) Search(value string) (index int)
- func (a *SortedStringArray) SetArray(array []string) *SortedStringArray
- func (a *SortedStringArray) SetUnique(unique bool) *SortedStringArray
- func (a *SortedStringArray) Slice() []string
- func (a *SortedStringArray) Sort() *SortedStringArray
- func (a *SortedStringArray) SubSlice(offset, size int) []string
- func (a *SortedStringArray) Sum() (sum int)
- func (a *SortedStringArray) Unique() *SortedStringArray
- type StringArray
- func (a *StringArray) Append(value ...string) *StringArray
- func (a *StringArray) Chunk(size int) [][]string
- func (a *StringArray) Clear() *StringArray
- func (a *StringArray) Clone() (newArray *StringArray)
- func (a *StringArray) Contains(value string) bool
- func (a *StringArray) Fill(startIndex int, num int, value string) *StringArray
- func (a *StringArray) Get(index int) string
- func (a *StringArray) InsertAfter(index int, value string) *StringArray
- func (a *StringArray) InsertBefore(index int, value string) *StringArray
- func (a *StringArray) Join(glue string) string
- func (a *StringArray) Len() int
- func (a *StringArray) LockFunc(f func(array []string)) *StringArray
- func (a *StringArray) Merge(array interface{}) *StringArray
- func (a *StringArray) Pad(size int, value string) *StringArray
- func (a *StringArray) PopLeft() string
- func (a *StringArray) PopLefts(size int) []string
- func (a *StringArray) PopRand() string
- func (a *StringArray) PopRands(size int) []string
- func (a *StringArray) PopRight() string
- func (a *StringArray) PopRights(size int) []string
- func (a *StringArray) PushLeft(value ...string) *StringArray
- func (a *StringArray) PushRight(value ...string) *StringArray
- func (a *StringArray) RLockFunc(f func(array []string)) *StringArray
- func (a *StringArray) Rand() string
- func (a *StringArray) Rands(size int) []string
- func (a *StringArray) Range(start, end int) []string
- func (a *StringArray) Remove(index int) string
- func (a *StringArray) Replace(array []string) *StringArray
- func (a *StringArray) Reverse() *StringArray
- func (a *StringArray) Search(value string) int
- func (a *StringArray) Set(index int, value string) *StringArray
- func (a *StringArray) SetArray(array []string) *StringArray
- func (a *StringArray) Shuffle() *StringArray
- func (a *StringArray) Slice() []string
- func (a *StringArray) Sort(reverse ...bool) *StringArray
- func (a *StringArray) SortFunc(less func(v1, v2 string) bool) *StringArray
- func (a *StringArray) SubSlice(offset, size int) []string
- func (a *StringArray) Sum() (sum int)
- func (a *StringArray) Unique() *StringArray
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
}
func New ¶
Create an empty array. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
创建一个空的数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func NewArrayFrom ¶
Create an array with given slice <array>. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
通过给定的slice变量创建数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func NewArrayFromCopy ¶
Create an array from a copy of given slice <array>. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
通过给定的slice拷贝创建数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func NewArraySize ¶
Create an array with given size and cap. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
创建一个指定大小的数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func NewFromCopy ¶
See NewArrayFromCopy.
func (*Array) Chunk ¶
Chunks an array into arrays with size elements. The last chunk may contain less than size elements.
将一个数组分割成多个数组,其中每个数组的单元数目由size决定。最后一个数组的单元数目可能会少于size个。
func (*Array) Fill ¶
Fills an array with num entries of the value of the value parameter, keys starting at the start_index parameter.
用value参数的值将数组填充num个条目,位置由startIndex参数指定的开始。
func (*Array) InsertAfter ¶
Insert the <value> to the back of <index>.
在当前索引位置前插入一个数据项, 调用方注意判断数组边界。
func (*Array) InsertBefore ¶
Insert the <value> to the front of <index>.
在当前索引位置前插入一个数据项, 调用方注意判断数组边界。
func (*Array) Merge ¶
Merge two arrays. The parameter <array> can be any garray type or slice type. The difference between Merge and Append is Append supports only specified slice type, but Merge supports more variable types.
合并两个数组, 支持任意的garray数组类型及slice类型.
func (*Array) Pad ¶
Pad array to the specified length with a value. If size is positive then the array is padded on the right, if it's negative then on the left. If the absolute value of size is less than or equal to the length of the array then no padding takes place.
返回数组的一个拷贝,并用value将其填补到size指定的长度。 如果size为正数,则填补到数组的右侧,如果为负数则从左侧开始填补。 如果size的绝对值小于或等于数组的长度则没有任何填补。
func (*Array) PopLeft ¶
func (a *Array) PopLeft() interface{}
Pop an item from the beginning of array.
将最左端(索引为0)的数据项移出数组,并返回该数据项。
func (*Array) PopLefts ¶
Pop <size> items from the beginning of array.
将最左端(首部)的size个数据项移出数组,并返回该数据项
func (*Array) PopRand ¶
func (a *Array) PopRand() interface{}
PopRand picks an random item out of array.
随机将一个数据项移出数组,并返回该数据项。
func (*Array) PopRight ¶
func (a *Array) PopRight() interface{}
Pop an item from the end of array.
将最右端(索引为length - 1)的数据项移出数组,并返回该数据项。
func (*Array) PushRight ¶
Push new items to the end of array.
将数据项添加到数组的最右端(索引为length - 1), 等于: Append。
func (*Array) Rand ¶
func (a *Array) Rand() interface{}
Rand gets one random entry from array.
从数组中随机获得1个元素项(不删除)。
func (*Array) Rands ¶
Rands gets one or more random entries from array(a copy).
从数组中随机拷贝size个元素项,构成slice返回。
func (*Array) Range ¶
Get items by range, returns array[start:end]. Be aware that, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.
将最右端(尾部)的size个数据项移出数组,并返回该数据项
func (*Array) Replace ¶
Replace the array items by given <array> from the beginning of array.
使用指定数组替换到对应的索引元素值.
func (*Array) Search ¶
Search array by <value>, returns the index of <value>, returns -1 if not exists.
查找指定数值的索引位置,返回索引位置,如果查找不到则返回-1
func (*Array) Slice ¶
func (a *Array) Slice() []interface{}
Get the underlying data of array. Be aware that, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.
返回原始数据数组.
func (*Array) SubSlice ¶
Extract a slice of the array(If in concurrent safe usage, it returns a copy of the slice; else a pointer). It returns the sequence of elements from the array array as specified by the offset and length parameters.
返回根据offset和size参数所指定的数组中的一段序列。
type IntArray ¶
type IntArray struct {
// contains filtered or unexported fields
}
func NewIntArray ¶
Create an empty array. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
创建一个空的数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func NewIntArrayFrom ¶
Create an array with given slice <array>. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
通过给定的slice变量创建数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func NewIntArrayFromCopy ¶
Create an array from a copy of given slice <array>. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
通过给定的slice拷贝创建数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func NewIntArraySize ¶
Create an array with given size and cap. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
创建一个指定大小的数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func (*IntArray) Chunk ¶
Chunks an array into arrays with size elements. The last chunk may contain less than size elements.
将一个数组分割成多个数组,其中每个数组的单元数目由size决定。最后一个数组的单元数目可能会少于size个。
func (*IntArray) Fill ¶
Fills an array with num entries of the value of the value parameter, keys starting at the startIndex parameter.
用value参数的值将数组填充num个条目,位置由startIndex参数指定的开始。
func (*IntArray) InsertAfter ¶
Insert the <value> to the back of <index>.
在当前索引位置前插入一个数据项, 调用方注意判断数组边界。
func (*IntArray) InsertBefore ¶
Insert the <value> to the front of <index>.
在当前索引位置前插入一个数据项, 调用方注意判断数组边界。
func (*IntArray) Merge ¶
Merge two arrays. The parameter <array> can be any garray type or slice type. The difference between Merge and Append is Append supports only specified slice type, but Merge supports more variable types.
合并两个数组, 支持任意的garray数组类型及slice类型.
func (*IntArray) Pad ¶
Pad array to the specified length with a value. If size is positive then the array is padded on the right, or negative on the left. If the absolute value of size is less than or equal to the length of the array then no padding takes place.
返回数组的一个拷贝,并用value将其填补到size指定的长度。 如果size为正数,则填补到数组的右侧,如果为负数则从左侧开始填补。 如果size的绝对值小于或等于数组的长度则没有任何填补。
func (*IntArray) PopLefts ¶
Pop <size> items from the beginning of array.
将最左端(首部)的size个数据项移出数组,并返回该数据项。
func (*IntArray) PushRight ¶
Push new items to the end of array.
将数据项添加到数组的最右端(索引为length - 1), 等于: Append。
func (*IntArray) Rands ¶
Rands gets one or more random entries from array(a copy).
从数组中随机拷贝size个元素项,构成slice返回。
func (*IntArray) Range ¶
Get items by range, returns array[start:end]. Be aware that, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.
将最右端(尾部)的size个数据项移出数组,并返回该数据项
func (*IntArray) Replace ¶
Replace the array items by given <array> from the beginning of array.
使用指定数组替换到对应的索引元素值.
func (*IntArray) Search ¶
Search array by <value>, returns the index of <value>, returns -1 if not exists.
查找指定数值的索引位置,返回索引位置,如果查找不到则返回-1。
func (*IntArray) Slice ¶
Get the underlying data of array. Be aware that, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.
返回原始数据数组.
func (*IntArray) Sort ¶
Sort the array in increasing order. The param <reverse> controls whether sort in increasing order(default) or decreasing order
将数组排序(默认从低到高).
func (*IntArray) SubSlice ¶
Extract a slice of the array(If in concurrent safe usage, it returns a copy of the slice; else a pointer). It returns the sequence of elements from the array array as specified by the offset and length parameters.
返回根据offset和size参数所指定的数组中的一段序列。
type SortedArray ¶
type SortedArray struct {
// contains filtered or unexported fields
}
默认按照从小到大进行排序
func NewSortedArray ¶
func NewSortedArray(compareFunc func(v1, v2 interface{}) int, unsafe ...bool) *SortedArray
Create an empty sorted array. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default. The param <compareFunc> used to compare values to sort in array, if it returns value < 0, means v1 < v2; if it returns value = 0, means v1 = v2; if it returns value > 0, means v1 > v2;
创建一个空的排序数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。 参数compareFunc用于指定排序方法: 如果返回值 < 0, 表示 v1 < v2; 如果返回值 = 0, 表示 v1 = v2; 如果返回值 > 0, 表示 v1 > v2;
func NewSortedArrayFrom ¶
func NewSortedArrayFrom(array []interface{}, compareFunc func(v1, v2 interface{}) int, unsafe ...bool) *SortedArray
Create an array with given slice <array>. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
通过给定的slice变量创建排序数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func NewSortedArrayFromCopy ¶
func NewSortedArrayFromCopy(array []interface{}, unsafe ...bool) *SortedArray
Create an array from a copy of given slice <array>. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
通过给定的slice拷贝创建数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func NewSortedArraySize ¶
func NewSortedArraySize(cap int, compareFunc func(v1, v2 interface{}) int, unsafe ...bool) *SortedArray
Create a sorted array with given size and cap. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
创建一个指定大小的排序数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func (*SortedArray) Add ¶
func (a *SortedArray) Add(values ...interface{}) *SortedArray
And values to sorted array, the array always keeps sorted.
添加数据项.
func (*SortedArray) Chunk ¶
func (a *SortedArray) Chunk(size int) [][]interface{}
Chunks an array into arrays with size elements. The last chunk may contain less than size elements.
将一个数组分割成多个数组,其中每个数组的单元数目由size决定。最后一个数组的单元数目可能会少于size个。
func (*SortedArray) Clone ¶
func (a *SortedArray) Clone() (newArray *SortedArray)
Return a new array, which is a copy of current array.
克隆当前数组,返回当前数组的一个拷贝。
func (*SortedArray) Contains ¶
func (a *SortedArray) Contains(value interface{}) bool
Check whether a value exists in the array.
查找指定数值是否存在。
func (*SortedArray) Get ¶
func (a *SortedArray) Get(index int) interface{}
Get value by index.
获取指定索引的数据项, 调用方注意判断数组边界。
func (*SortedArray) Join ¶
func (a *SortedArray) Join(glue string) string
Join array elements with a string.
使用glue字符串串连当前数组的元素项,构造成新的字符串返回。
func (*SortedArray) LockFunc ¶
func (a *SortedArray) LockFunc(f func(array []interface{})) *SortedArray
Lock writing by callback function f.
使用自定义方法执行加锁修改操作。
func (*SortedArray) Merge ¶
func (a *SortedArray) Merge(array interface{}) *SortedArray
Merge two arrays. The parameter <array> can be any garray type or slice type. The difference between Merge and Add is Add supports only specified slice type, but Merge supports more variable types.
合并两个数组, 支持任意的garray数组类型及slice类型.
func (*SortedArray) PopLeft ¶
func (a *SortedArray) PopLeft() interface{}
Push new items to the beginning of array.
将数据项添加到数组的最左端(索引为0)。
func (*SortedArray) PopLefts ¶
func (a *SortedArray) PopLefts(size int) []interface{}
Pop <size> items from the beginning of array.
将最左端(首部)的size个数据项移出数组,并返回该数据项
func (*SortedArray) PopRand ¶
func (a *SortedArray) PopRand() interface{}
PopRand picks an random item out of array.
随机将一个数据项移出数组,并返回该数据项。
func (*SortedArray) PopRands ¶
func (a *SortedArray) PopRands(size int) []interface{}
PopRands picks <size> items out of array.
随机将size个数据项移出数组,并返回该数据项。
func (*SortedArray) PopRight ¶
func (a *SortedArray) PopRight() interface{}
Push new items to the end of array.
将数据项添加到数组的最右端(索引为length - 1)。
func (*SortedArray) PopRights ¶
func (a *SortedArray) PopRights(size int) []interface{}
Pop <size> items from the end of array.
将最右端(尾部)的size个数据项移出数组,并返回该数据项
func (*SortedArray) RLockFunc ¶
func (a *SortedArray) RLockFunc(f func(array []interface{})) *SortedArray
Lock reading by callback function f.
使用自定义方法执行加锁读取操作。
func (*SortedArray) Rand ¶
func (a *SortedArray) Rand() interface{}
Rand gets one random entry from array.
从数组中随机获得1个元素项(不删除)。
func (*SortedArray) Rands ¶
func (a *SortedArray) Rands(size int) []interface{}
Rands gets one or more random entries from array(a copy).
从数组中随机拷贝size个元素项,构成slice返回。
func (*SortedArray) Range ¶
func (a *SortedArray) Range(start, end int) []interface{}
Get items by range, returns array[start:end]. Be aware that, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.
将最右端(尾部)的size个数据项移出数组,并返回该数据项
func (*SortedArray) Remove ¶
func (a *SortedArray) Remove(index int) interface{}
Remove an item by index.
删除指定索引的数据项, 调用方注意判断数组边界。
func (*SortedArray) Search ¶
func (a *SortedArray) Search(value interface{}) (index int)
Search array by <value>, returns the index of <value>, returns -1 if not exists.
查找指定数值的索引位置,返回索引位置,如果查找不到则返回-1。
func (*SortedArray) SetArray ¶
func (a *SortedArray) SetArray(array []interface{}) *SortedArray
Set the underlying slice array with the given <array> param.
设置底层数组变量.
func (*SortedArray) SetUnique ¶
func (a *SortedArray) SetUnique(unique bool) *SortedArray
Set unique mark to the array, which means it does not contain any repeated items. It also do unique check, remove all repeated items.
设置是否允许数组唯一.
func (*SortedArray) Slice ¶
func (a *SortedArray) Slice() []interface{}
Get the underlying data of array. Be aware that, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.
返回原始数据数组.
func (*SortedArray) Sort ¶
func (a *SortedArray) Sort() *SortedArray
Sort the array by comparing function.
将数组按照比较方法进行排序.
func (*SortedArray) SubSlice ¶
func (a *SortedArray) SubSlice(offset, size int) []interface{}
Extract a slice of the array(If in concurrent safe usage, it returns a copy of the slice; else a pointer). It returns the sequence of elements from the array array as specified by the offset and length parameters.
返回根据offset和size参数所指定的数组中的一段序列。
func (*SortedArray) Sum ¶
func (a *SortedArray) Sum() (sum int)
Calculate the sum of values in an array.
对数组中的元素项求和(将元素值转换为int类型后叠加)。
func (*SortedArray) Unique ¶
func (a *SortedArray) Unique() *SortedArray
Do unique check, remove all repeated items.
清理数组中重复的元素项.
type SortedIntArray ¶
type SortedIntArray struct {
// contains filtered or unexported fields
}
默认按照从小到大进行排序
func NewSortedIntArray ¶
func NewSortedIntArray(unsafe ...bool) *SortedIntArray
Create an empty sorted array. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
创建一个空的排序数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func NewSortedIntArrayFrom ¶
func NewSortedIntArrayFrom(array []int, unsafe ...bool) *SortedIntArray
Create an array with given slice <array>. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
通过给定的slice变量创建排序数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func NewSortedIntArrayFromCopy ¶
func NewSortedIntArrayFromCopy(array []int, unsafe ...bool) *SortedIntArray
Create an array from a copy of given slice <array>. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
通过给定的slice拷贝创建数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func NewSortedIntArraySize ¶
func NewSortedIntArraySize(cap int, unsafe ...bool) *SortedIntArray
Create a sorted array with given size and cap. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
创建一个指定大小的排序数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func (*SortedIntArray) Add ¶
func (a *SortedIntArray) Add(values ...int) *SortedIntArray
And values to sorted array, the array always keeps sorted.
添加数据项.
func (*SortedIntArray) Chunk ¶
func (a *SortedIntArray) Chunk(size int) [][]int
Chunks an array into arrays with size elements. The last chunk may contain less than size elements.
将一个数组分割成多个数组,其中每个数组的单元数目由size决定。最后一个数组的单元数目可能会少于size个。
func (*SortedIntArray) Clear ¶
func (a *SortedIntArray) Clear() *SortedIntArray
Clear array.
清空数据数组。
func (*SortedIntArray) Clone ¶
func (a *SortedIntArray) Clone() (newArray *SortedIntArray)
Return a new array, which is a copy of current array.
克隆当前数组,返回当前数组的一个拷贝。
func (*SortedIntArray) Contains ¶
func (a *SortedIntArray) Contains(value int) bool
Check whether a value exists in the array.
查找指定数值是否存在。
func (*SortedIntArray) Get ¶
func (a *SortedIntArray) Get(index int) int
Get value by index.
获取指定索引的数据项, 调用方注意判断数组边界。
func (*SortedIntArray) Join ¶
func (a *SortedIntArray) Join(glue string) string
Join array elements with a string.
使用glue字符串串连当前数组的元素项,构造成新的字符串返回。
func (*SortedIntArray) LockFunc ¶
func (a *SortedIntArray) LockFunc(f func(array []int)) *SortedIntArray
Lock writing by callback function f.
使用自定义方法执行加锁修改操作。
func (*SortedIntArray) Merge ¶
func (a *SortedIntArray) Merge(array interface{}) *SortedIntArray
Merge two arrays. The parameter <array> can be any garray type or slice type. The difference between Merge and Add is Add supports only specified slice type, but Merge supports more variable types.
合并两个数组, 支持任意的garray数组类型及slice类型.
func (*SortedIntArray) PopLeft ¶
func (a *SortedIntArray) PopLeft() int
Push new items to the beginning of array.
将数据项添加到数组的最左端(索引为0)。
func (*SortedIntArray) PopLefts ¶
func (a *SortedIntArray) PopLefts(size int) []int
Pop <size> items from the beginning of array.
将最左端(首部)的size个数据项移出数组,并返回该数据项
func (*SortedIntArray) PopRand ¶
func (a *SortedIntArray) PopRand() int
PopRand picks an random item out of array.
随机将一个数据项移出数组,并返回该数据项。
func (*SortedIntArray) PopRands ¶
func (a *SortedIntArray) PopRands(size int) []int
PopRands picks <size> items out of array.
随机将size个数据项移出数组,并返回该数据项。
func (*SortedIntArray) PopRight ¶
func (a *SortedIntArray) PopRight() int
Push new items to the end of array.
将数据项添加到数组的最右端(索引为length - 1)。
func (*SortedIntArray) PopRights ¶
func (a *SortedIntArray) PopRights(size int) []int
Pop <size> items from the end of array.
将最右端(尾部)的size个数据项移出数组,并返回该数据项
func (*SortedIntArray) RLockFunc ¶
func (a *SortedIntArray) RLockFunc(f func(array []int)) *SortedIntArray
Lock reading by callback function f.
使用自定义方法执行加锁读取操作。
func (*SortedIntArray) Rand ¶
func (a *SortedIntArray) Rand() int
Rand gets one random entry from array.
从数组中随机获得1个元素项(不删除)。
func (*SortedIntArray) Rands ¶
func (a *SortedIntArray) Rands(size int) []int
Rands gets one or more random entries from array(a copy).
从数组中随机拷贝size个元素项,构成slice返回。
func (*SortedIntArray) Range ¶
func (a *SortedIntArray) Range(start, end int) []int
Get items by range, returns array[start:end]. Be aware that, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.
将最右端(尾部)的size个数据项移出数组,并返回该数据项
func (*SortedIntArray) Remove ¶
func (a *SortedIntArray) Remove(index int) int
Remove an item by index.
删除指定索引的数据项, 调用方注意判断数组边界。
func (*SortedIntArray) Search ¶
func (a *SortedIntArray) Search(value int) (index int)
Search array by <value>, returns the index of <value>, returns -1 if not exists.
查找指定数值的索引位置,返回索引位置,如果查找不到则返回-1。
func (*SortedIntArray) SetArray ¶
func (a *SortedIntArray) SetArray(array []int) *SortedIntArray
Set the underlying slice array with the given <array> param.
设置底层数组变量.
func (*SortedIntArray) SetUnique ¶
func (a *SortedIntArray) SetUnique(unique bool) *SortedIntArray
Set unique mark to the array, which means it does not contain any repeated items. It also do unique check, remove all repeated items.
设置是否允许数组唯一.
func (*SortedIntArray) Slice ¶
func (a *SortedIntArray) Slice() []int
Get the underlying data of array. Be aware that, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.
返回原始数据数组.
func (*SortedIntArray) Sort ¶
func (a *SortedIntArray) Sort() *SortedIntArray
Sort the array in increasing order.
将数组排序(默认从低到高).
func (*SortedIntArray) SubSlice ¶
func (a *SortedIntArray) SubSlice(offset, size int) []int
Extract a slice of the array(If in concurrent safe usage, it returns a copy of the slice; else a pointer). It returns the sequence of elements from the array array as specified by the offset and length parameters.
返回根据offset和size参数所指定的数组中的一段序列。
func (*SortedIntArray) Sum ¶
func (a *SortedIntArray) Sum() (sum int)
Calculate the sum of values in an array.
对数组中的元素项求和。
func (*SortedIntArray) Unique ¶
func (a *SortedIntArray) Unique() *SortedIntArray
Do unique check, remove all repeated items.
清理数组中重复的元素项.
type SortedStringArray ¶
type SortedStringArray struct {
// contains filtered or unexported fields
}
默认按照从小到大进行排序
func NewSortedStringArray ¶
func NewSortedStringArray(unsafe ...bool) *SortedStringArray
Create an empty sorted array. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
创建一个空的排序数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func NewSortedStringArrayFrom ¶
func NewSortedStringArrayFrom(array []string, unsafe ...bool) *SortedStringArray
Create an array with given slice <array>. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
通过给定的slice变量创建排序数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func NewSortedStringArrayFromCopy ¶
func NewSortedStringArrayFromCopy(array []string, unsafe ...bool) *SortedStringArray
Create an array from a copy of given slice <array>. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
通过给定的slice拷贝创建数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func NewSortedStringArraySize ¶
func NewSortedStringArraySize(cap int, unsafe ...bool) *SortedStringArray
Create a sorted array with given size and cap. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
创建一个指定大小的排序数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func (*SortedStringArray) Add ¶
func (a *SortedStringArray) Add(values ...string) *SortedStringArray
And values to sorted array, the array always keeps sorted.
添加数据项.
func (*SortedStringArray) Chunk ¶
func (a *SortedStringArray) Chunk(size int) [][]string
Chunks an array into arrays with size elements. The last chunk may contain less than size elements.
将一个数组分割成多个数组,其中每个数组的单元数目由size决定。最后一个数组的单元数目可能会少于size个。
func (*SortedStringArray) Clear ¶
func (a *SortedStringArray) Clear() *SortedStringArray
Clear array.
清空数据数组。
func (*SortedStringArray) Clone ¶
func (a *SortedStringArray) Clone() (newArray *SortedStringArray)
Return a new array, which is a copy of current array.
克隆当前数组,返回当前数组的一个拷贝。
func (*SortedStringArray) Contains ¶
func (a *SortedStringArray) Contains(value string) bool
Check whether a value exists in the array.
查找指定数值是否存在。
func (*SortedStringArray) Get ¶
func (a *SortedStringArray) Get(index int) string
Get value by index.
获取指定索引的数据项, 调用方注意判断数组边界。
func (*SortedStringArray) Join ¶
func (a *SortedStringArray) Join(glue string) string
Join array elements with a string.
使用glue字符串串连当前数组的元素项,构造成新的字符串返回。
func (*SortedStringArray) Len ¶
func (a *SortedStringArray) Len() int
Get the length of array.
数组长度。
func (*SortedStringArray) LockFunc ¶
func (a *SortedStringArray) LockFunc(f func(array []string)) *SortedStringArray
Lock writing by callback function f.
使用自定义方法执行加锁修改操作。
func (*SortedStringArray) Merge ¶
func (a *SortedStringArray) Merge(array interface{}) *SortedStringArray
Merge two arrays. The parameter <array> can be any garray type or slice type. The difference between Merge and Add is Add supports only specified slice type, but Merge supports more variable types.
合并两个数组, 支持任意的garray数组类型及slice类型.
func (*SortedStringArray) PopLeft ¶
func (a *SortedStringArray) PopLeft() string
Push new items to the beginning of array.
将数据项添加到数组的最左端(索引为0)。
func (*SortedStringArray) PopLefts ¶
func (a *SortedStringArray) PopLefts(size int) []string
Pop <size> items from the beginning of array.
将最左端(首部)的size个数据项移出数组,并返回该数据项
func (*SortedStringArray) PopRand ¶
func (a *SortedStringArray) PopRand() string
PopRand picks an random item out of array.
随机将一个数据项移出数组,并返回该数据项。
func (*SortedStringArray) PopRands ¶
func (a *SortedStringArray) PopRands(size int) []string
PopRands picks <size> items out of array.
随机将size个数据项移出数组,并返回该数据项。
func (*SortedStringArray) PopRight ¶
func (a *SortedStringArray) PopRight() string
Push new items to the end of array.
将数据项添加到数组的最右端(索引为length - 1)。
func (*SortedStringArray) PopRights ¶
func (a *SortedStringArray) PopRights(size int) []string
Pop <size> items from the end of array.
将最右端(尾部)的size个数据项移出数组,并返回该数据项
func (*SortedStringArray) RLockFunc ¶
func (a *SortedStringArray) RLockFunc(f func(array []string)) *SortedStringArray
Lock reading by callback function f.
使用自定义方法执行加锁读取操作。
func (*SortedStringArray) Rand ¶
func (a *SortedStringArray) Rand() string
Rand gets one random entry from array.
从数组中随机获得1个元素项(不删除)。
func (*SortedStringArray) Rands ¶
func (a *SortedStringArray) Rands(size int) []string
Rands gets one or more random entries from array(a copy).
从数组中随机拷贝size个元素项,构成slice返回。
func (*SortedStringArray) Range ¶
func (a *SortedStringArray) Range(start, end int) []string
Get items by range, returns array[start:end]. Be aware that, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.
将最右端(尾部)的size个数据项移出数组,并返回该数据项
func (*SortedStringArray) Remove ¶
func (a *SortedStringArray) Remove(index int) string
Remove an item by index.
删除指定索引的数据项, 调用方注意判断数组边界。
func (*SortedStringArray) Search ¶
func (a *SortedStringArray) Search(value string) (index int)
Search array by <value>, returns the index of <value>, returns -1 if not exists.
查找指定数值的索引位置,返回索引位置,如果查找不到则返回-1。
func (*SortedStringArray) SetArray ¶
func (a *SortedStringArray) SetArray(array []string) *SortedStringArray
Set the underlying slice array with the given <array> param.
设置底层数组变量.
func (*SortedStringArray) SetUnique ¶
func (a *SortedStringArray) SetUnique(unique bool) *SortedStringArray
Set unique mark to the array, which means it does not contain any repeated items. It also do unique check, remove all repeated items.
设置是否允许数组唯一.
func (*SortedStringArray) Slice ¶
func (a *SortedStringArray) Slice() []string
Get the underlying data of array. Be aware that, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.
返回原始数据数组.
func (*SortedStringArray) Sort ¶
func (a *SortedStringArray) Sort() *SortedStringArray
Sort the array in increasing order.
将数组排序(默认从低到高).
func (*SortedStringArray) SubSlice ¶
func (a *SortedStringArray) SubSlice(offset, size int) []string
Extract a slice of the array(If in concurrent safe usage, it returns a copy of the slice; else a pointer). It returns the sequence of elements from the array array as specified by the offset and length parameters.
返回根据offset和size参数所指定的数组中的一段序列。
func (*SortedStringArray) Sum ¶
func (a *SortedStringArray) Sum() (sum int)
Calculate the sum of values in an array.
对数组中的元素项求和(将元素值转换为int类型后叠加)。
func (*SortedStringArray) Unique ¶
func (a *SortedStringArray) Unique() *SortedStringArray
Do unique check, remove all repeated items.
清理数组中重复的元素项.
type StringArray ¶
type StringArray struct {
// contains filtered or unexported fields
}
func NewStringArray ¶
func NewStringArray(unsafe ...bool) *StringArray
Create an empty array. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
创建一个空的数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func NewStringArrayFrom ¶
func NewStringArrayFrom(array []string, unsafe ...bool) *StringArray
Create an array with given slice <array>. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
通过给定的slice变量创建数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func NewStringArrayFromCopy ¶
func NewStringArrayFromCopy(array []string, unsafe ...bool) *StringArray
Create an array from a copy of given slice <array>. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
通过给定的slice拷贝创建数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func NewStringArraySize ¶
func NewStringArraySize(size int, cap int, unsafe ...bool) *StringArray
Create an array with given size and cap. The param <unsafe> used to specify whether using array with un-concurrent-safety, which is false in default, means concurrent-safe in default.
创建一个指定大小的数组对象,参数unsafe用于指定是否用于非并发安全场景,默认为false,表示并发安全。
func (*StringArray) Append ¶
func (a *StringArray) Append(value ...string) *StringArray
See PushRight.
追加数据项, 等于: PushRight。
func (*StringArray) Chunk ¶
func (a *StringArray) Chunk(size int) [][]string
Chunks an array into arrays with size elements. The last chunk may contain less than size elements.
将一个数组分割成多个数组,其中每个数组的单元数目由size决定。最后一个数组的单元数目可能会少于size个。
func (*StringArray) Clone ¶
func (a *StringArray) Clone() (newArray *StringArray)
Return a new array, which is a copy of current array.
克隆当前数组,返回当前数组的一个拷贝。
func (*StringArray) Contains ¶
func (a *StringArray) Contains(value string) bool
Check whether a value exists in the array.
查找指定数值是否存在。
func (*StringArray) Fill ¶
func (a *StringArray) Fill(startIndex int, num int, value string) *StringArray
Fills an array with num entries of the value of the value parameter, keys starting at the start_index parameter.
用value参数的值将数组填充num个条目,位置由startIndex参数指定的开始。
func (*StringArray) Get ¶
func (a *StringArray) Get(index int) string
Get value by index.
获取指定索引的数据项, 调用方注意判断数组边界。
func (*StringArray) InsertAfter ¶
func (a *StringArray) InsertAfter(index int, value string) *StringArray
Insert the <value> to the back of <index>.
在当前索引位置前插入一个数据项, 调用方注意判断数组边界。
func (*StringArray) InsertBefore ¶
func (a *StringArray) InsertBefore(index int, value string) *StringArray
Insert the <value> to the front of <index>.
在当前索引位置前插入一个数据项, 调用方注意判断数组边界。
func (*StringArray) Join ¶
func (a *StringArray) Join(glue string) string
Join array elements with a string.
使用glue字符串串连当前数组的元素项,构造成新的字符串返回。
func (*StringArray) LockFunc ¶
func (a *StringArray) LockFunc(f func(array []string)) *StringArray
Lock writing by callback function f.
使用自定义方法执行加锁修改操作。
func (*StringArray) Merge ¶
func (a *StringArray) Merge(array interface{}) *StringArray
Merge two arrays. The parameter <array> can be any garray type or slice type. The difference between Merge and Append is Append supports only specified slice type, but Merge supports more variable types.
合并两个数组, 支持任意的garray数组类型及slice类型.
func (*StringArray) Pad ¶
func (a *StringArray) Pad(size int, value string) *StringArray
Pad array to the specified length with a value. If size is positive then the array is padded on the right, if it's negative then on the left. If the absolute value of size is less than or equal to the length of the array then no padding takes place.
返回数组的一个拷贝,并用value将其填补到size指定的长度。 如果size为正数,则填补到数组的右侧,如果为负数则从左侧开始填补。 如果size的绝对值小于或等于数组的长度则没有任何填补。
func (*StringArray) PopLeft ¶
func (a *StringArray) PopLeft() string
Pop an item from the beginning of array.
将最左端(索引为0)的数据项移出数组,并返回该数据项。
func (*StringArray) PopLefts ¶
func (a *StringArray) PopLefts(size int) []string
Pop <size> items from the beginning of array.
将最左端(首部)的size个数据项移出数组,并返回该数据项
func (*StringArray) PopRand ¶
func (a *StringArray) PopRand() string
PopRand picks an random item out of array.
随机将一个数据项移出数组,并返回该数据项。
func (*StringArray) PopRands ¶
func (a *StringArray) PopRands(size int) []string
PopRands picks <size> items out of array.
随机将size个数据项移出数组,并返回该数据项。
func (*StringArray) PopRight ¶
func (a *StringArray) PopRight() string
Pop an item from the end of array.
将最右端(索引为length - 1)的数据项移出数组,并返回该数据项。
func (*StringArray) PopRights ¶
func (a *StringArray) PopRights(size int) []string
Pop <size> items from the end of array.
将最右端(尾部)的size个数据项移出数组,并返回该数据项
func (*StringArray) PushLeft ¶
func (a *StringArray) PushLeft(value ...string) *StringArray
Push new items to the beginning of array.
将数据项添加到数组的最左端(索引为0)。
func (*StringArray) PushRight ¶
func (a *StringArray) PushRight(value ...string) *StringArray
Push new items to the end of array.
将数据项添加到数组的最右端(索引为length - 1), 等于: Append。
func (*StringArray) RLockFunc ¶
func (a *StringArray) RLockFunc(f func(array []string)) *StringArray
Lock reading by callback function f.
使用自定义方法执行加锁读取操作。
func (*StringArray) Rand ¶
func (a *StringArray) Rand() string
Rand gets one random entry from array.
从数组中随机获得1个元素项(不删除)。
func (*StringArray) Rands ¶
func (a *StringArray) Rands(size int) []string
Rands gets one or more random entries from array(a copy).
从数组中随机拷贝size个元素项,构成slice返回。
func (*StringArray) Range ¶
func (a *StringArray) Range(start, end int) []string
Get items by range, returns array[start:end]. Be aware that, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.
将最右端(尾部)的size个数据项移出数组,并返回该数据项
func (*StringArray) Remove ¶
func (a *StringArray) Remove(index int) string
Remove an item by index.
删除指定索引的数据项, 调用方注意判断数组边界。
func (*StringArray) Replace ¶
func (a *StringArray) Replace(array []string) *StringArray
Replace the array items by given <array> from the beginning of array.
使用指定数组替换到对应的索引元素值.
func (*StringArray) Reverse ¶
func (a *StringArray) Reverse() *StringArray
Make array with elements in reverse order.
将当前数组反转。
func (*StringArray) Search ¶
func (a *StringArray) Search(value string) int
Search array by <value>, returns the index of <value>, returns -1 if not exists.
查找指定数值的索引位置,返回索引位置,如果查找不到则返回-1。
func (*StringArray) Set ¶
func (a *StringArray) Set(index int, value string) *StringArray
Set value by index.
设置指定索引的数据项, 调用方注意判断数组边界。
func (*StringArray) SetArray ¶
func (a *StringArray) SetArray(array []string) *StringArray
Set the underlying slice array with the given <array> param.
设置底层数组变量.
func (*StringArray) Shuffle ¶
func (a *StringArray) Shuffle() *StringArray
Randomly shuffles the array.
随机打乱当前数组。
func (*StringArray) Slice ¶
func (a *StringArray) Slice() []string
Get the underlying data of array. Be aware that, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.
返回原始数据数组.
func (*StringArray) Sort ¶
func (a *StringArray) Sort(reverse ...bool) *StringArray
Sort the array in increasing order. The param <reverse> controls whether sort in increasing order(default) or decreasing order
将数组排序(默认从低到高).
func (*StringArray) SortFunc ¶
func (a *StringArray) SortFunc(less func(v1, v2 string) bool) *StringArray
Sort the array by custom function <less>.
使用自定义的排序函数将数组重新排序.
func (*StringArray) SubSlice ¶
func (a *StringArray) SubSlice(offset, size int) []string
Extract a slice of the array(If in concurrent safe usage, it returns a copy of the slice; else a pointer). It returns the sequence of elements from the array array as specified by the offset and length parameters.
返回根据offset和size参数所指定的数组中的一段序列。
func (*StringArray) Sum ¶
func (a *StringArray) Sum() (sum int)
Calculate the sum of values in an array.
对数组中的元素项求和(将元素值转换为int类型后叠加)。
func (*StringArray) Unique ¶
func (a *StringArray) Unique() *StringArray
Unique the array, clear repeated values.
清理数组中重复的元素项。