Documentation ¶
Overview ¶
Package garray provides concurrent-safe/unsafe 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) CountValues() map[int]int
- 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) String() string
- func (a *IntArray) SubSlice(offset, size int) []int
- func (a *IntArray) Sum() (sum int)
- func (a *IntArray) Unique() *IntArray
- type SortedArray
- func NewSortedArray(comparator func(v1, v2 interface{}) int, unsafe ...bool) *SortedArray
- func NewSortedArrayFrom(array []interface{}, comparator func(v1, v2 interface{}) int, unsafe ...bool) *SortedArray
- func NewSortedArrayFromCopy(array []interface{}, unsafe ...bool) *SortedArray
- func NewSortedArraySize(cap int, comparator 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) CountValues() map[interface{}]int
- 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) String() string
- 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) CountValues() map[int]int
- 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) String() string
- 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) CountValues() map[string]int
- 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) String() string
- 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) CountValues() map[string]int
- 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) String() string
- 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 ¶
New creates and returns an empty array. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func NewArrayFrom ¶
NewArrayFrom creates and returns an array with given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func NewArrayFromCopy ¶
NewArrayFromCopy creates and returns an array from a copy of given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func NewArraySize ¶
NewArraySize create and returns an array with given size and cap. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func NewFromCopy ¶
See NewArrayFromCopy.
func (*Array) Chunk ¶
Chunk splits an array into multiple arrays, the size of each array is determined by <size>. The last chunk may contain less than size elements.
func (*Array) CountValues ¶
CountValues counts the number of occurrences of all values in the array.
func (*Array) Fill ¶
Fill fills an array with num entries of the value <value>, keys starting at the <startIndex> parameter.
func (*Array) Get ¶
Get returns the value of the specified index, the caller should notice the boundary of the array.
func (*Array) InsertAfter ¶
InsertAfter inserts the <value> to the back of <index>.
func (*Array) InsertBefore ¶
InsertBefore inserts the <value> to the front of <index>.
func (*Array) Merge ¶
Merge merges <array> into current array. The parameter <array> can be any garray or slice type. The difference between Merge and Append is Append supports only specified slice type, but Merge supports more parameter types.
func (*Array) Pad ¶
Pad pads array to the specified length with <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.
func (*Array) PopLeft ¶
func (a *Array) PopLeft() interface{}
PopLeft pops and returns an item from the beginning of array.
func (*Array) PopRand ¶
func (a *Array) PopRand() interface{}
PopRand randomly pops and return an item out of array.
func (*Array) PopRight ¶
func (a *Array) PopRight() interface{}
PopRight pops and returns an item from the end of array.
func (*Array) PushRight ¶
PushRight pushes one or multiple items to the end of array. It equals to Append.
func (*Array) Rand ¶
func (a *Array) Rand() interface{}
Rand randomly returns one item from array(no deleting).
func (*Array) Range ¶
Range picks and returns items by range, like array[start:end]. Notice, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.
func (*Array) Replace ¶
Replace replaces the array items by given <array> from the beginning of array.
func (*Array) Search ¶
Search searches array by <value>, returns the index of <value>, or returns -1 if not exists.
func (*Array) Slice ¶
func (a *Array) Slice() []interface{}
Slice returns the underlying data of array. Notice, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.
type IntArray ¶
type IntArray struct {
// contains filtered or unexported fields
}
func NewIntArray ¶
NewIntArray creates and returns an empty array. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func NewIntArrayFrom ¶
NewIntArrayFrom creates and returns an array with given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func NewIntArrayFromCopy ¶
NewIntArrayFromCopy creates and returns an array from a copy of given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func NewIntArraySize ¶
NewIntArraySize create and returns an array with given size and cap. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func (*IntArray) Chunk ¶
Chunk splits an array into multiple arrays, the size of each array is determined by <size>. The last chunk may contain less than size elements.
func (*IntArray) CountValues ¶
CountValues counts the number of occurrences of all values in the array.
func (*IntArray) Fill ¶
Fill fills an array with num entries of the value <value>, keys starting at the <startIndex> parameter.
func (*IntArray) Get ¶
Get returns the value of the specified index, the caller should notice the boundary of the array.
func (*IntArray) InsertAfter ¶
InsertAfter inserts the <value> to the back of <index>.
func (*IntArray) InsertBefore ¶
InsertBefore inserts the <value> to the front of <index>.
func (*IntArray) Merge ¶
Merge merges <array> into current array. The parameter <array> can be any garray or slice type. The difference between Merge and Append is Append supports only specified slice type, but Merge supports more parameter types.
func (*IntArray) Pad ¶
Pad pads array to the specified length with <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.
func (*IntArray) PushRight ¶
PushRight pushes one or multiple items to the end of array. It equals to Append.
func (*IntArray) Range ¶
Range picks and returns items by range, like array[start:end]. Notice, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.
func (*IntArray) Replace ¶
Replace replaces the array items by given <array> from the beginning of array.
func (*IntArray) Search ¶
Search searches array by <value>, returns the index of <value>, or returns -1 if not exists.
func (*IntArray) Slice ¶
Slice returns the underlying data of array. Notice, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.
func (*IntArray) Sort ¶
Sort sorts the array in increasing order. The param <reverse> controls whether sort in increasing order(default) or decreasing order
func (*IntArray) SubSlice ¶
SubSlice returns a slice of elements from the array as specified by the <offset> and <size> parameters. If in concurrent safe usage, it returns a copy of the slice; else a pointer.
type SortedArray ¶
type SortedArray struct {
// contains filtered or unexported fields
}
It's using increasing order in default.
func NewSortedArray ¶
func NewSortedArray(comparator func(v1, v2 interface{}) int, unsafe ...bool) *SortedArray
NewSortedArray creates and returns an empty sorted array. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default. The param <comparator> 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;
func NewSortedArrayFrom ¶
func NewSortedArrayFrom(array []interface{}, comparator func(v1, v2 interface{}) int, unsafe ...bool) *SortedArray
NewSortedArrayFrom creates and returns an sorted array with given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func NewSortedArrayFromCopy ¶
func NewSortedArrayFromCopy(array []interface{}, unsafe ...bool) *SortedArray
NewSortedArrayFromCopy creates and returns an sorted array from a copy of given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func NewSortedArraySize ¶
func NewSortedArraySize(cap int, comparator func(v1, v2 interface{}) int, unsafe ...bool) *SortedArray
NewSortedArraySize create and returns an sorted array with given size and cap. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func (*SortedArray) Add ¶
func (a *SortedArray) Add(values ...interface{}) *SortedArray
Add adds one or multiple values to sorted array, the array always keeps sorted.
func (*SortedArray) Chunk ¶
func (a *SortedArray) Chunk(size int) [][]interface{}
Chunk splits an array into multiple arrays, the size of each array is determined by <size>. The last chunk may contain less than size elements.
func (*SortedArray) Clear ¶
func (a *SortedArray) Clear() *SortedArray
Clear deletes all items of current array.
func (*SortedArray) Clone ¶
func (a *SortedArray) Clone() (newArray *SortedArray)
Clone returns a new array, which is a copy of current array.
func (*SortedArray) Contains ¶
func (a *SortedArray) Contains(value interface{}) bool
Contains checks whether a value exists in the array.
func (*SortedArray) CountValues ¶
func (a *SortedArray) CountValues() map[interface{}]int
CountValues counts the number of occurrences of all values in the array.
func (*SortedArray) Get ¶
func (a *SortedArray) Get(index int) interface{}
Get returns the value of the specified index, the caller should notice the boundary of the array.
func (*SortedArray) Join ¶
func (a *SortedArray) Join(glue string) string
Join joins array elements with a string <glue>.
func (*SortedArray) LockFunc ¶
func (a *SortedArray) LockFunc(f func(array []interface{})) *SortedArray
LockFunc locks writing by callback function <f>.
func (*SortedArray) Merge ¶
func (a *SortedArray) Merge(array interface{}) *SortedArray
Merge merges <array> into current array. The parameter <array> can be any garray or slice type. The difference between Merge and Append is Append supports only specified slice type, but Merge supports more parameter types.
func (*SortedArray) PopLeft ¶
func (a *SortedArray) PopLeft() interface{}
PopLeft pops and returns an item from the beginning of array.
func (*SortedArray) PopLefts ¶
func (a *SortedArray) PopLefts(size int) []interface{}
PopLefts pops and returns <size> items from the beginning of array.
func (*SortedArray) PopRand ¶
func (a *SortedArray) PopRand() interface{}
PopRand randomly pops and return an item out of array.
func (*SortedArray) PopRands ¶
func (a *SortedArray) PopRands(size int) []interface{}
PopRands randomly pops and returns <size> items out of array.
func (*SortedArray) PopRight ¶
func (a *SortedArray) PopRight() interface{}
PopRight pops and returns an item from the end of array.
func (*SortedArray) PopRights ¶
func (a *SortedArray) PopRights(size int) []interface{}
PopRights pops and returns <size> items from the end of array.
func (*SortedArray) RLockFunc ¶
func (a *SortedArray) RLockFunc(f func(array []interface{})) *SortedArray
RLockFunc locks reading by callback function <f>.
func (*SortedArray) Rand ¶
func (a *SortedArray) Rand() interface{}
Rand randomly returns one item from array(no deleting).
func (*SortedArray) Rands ¶
func (a *SortedArray) Rands(size int) []interface{}
Rands randomly returns <size> items from array(no deleting).
func (*SortedArray) Range ¶
func (a *SortedArray) Range(start, end int) []interface{}
Range picks and returns items by range, like array[start:end]. Notice, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.
func (*SortedArray) Remove ¶
func (a *SortedArray) Remove(index int) interface{}
Remove removes an item by index.
func (*SortedArray) Search ¶
func (a *SortedArray) Search(value interface{}) (index int)
Search searches array by <value>, returns the index of <value>, or returns -1 if not exists.
func (*SortedArray) SetArray ¶
func (a *SortedArray) SetArray(array []interface{}) *SortedArray
SetArray sets the underlying slice array with the given <array>.
func (*SortedArray) SetUnique ¶
func (a *SortedArray) SetUnique(unique bool) *SortedArray
SetUnique sets 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{}
Slice returns the underlying data of array. Notice, 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 sorts the array in increasing order. The param <reverse> controls whether sort in increasing order(default) or decreasing order
func (*SortedArray) String ¶
func (a *SortedArray) String() string
String returns current array as a string.
func (*SortedArray) SubSlice ¶
func (a *SortedArray) SubSlice(offset, size int) []interface{}
SubSlice returns a slice of elements from the array as specified by the <offset> and <size> parameters. If in concurrent safe usage, it returns a copy of the slice; else a pointer.
func (*SortedArray) Sum ¶
func (a *SortedArray) Sum() (sum int)
Sum returns the sum of values in an array.
func (*SortedArray) Unique ¶
func (a *SortedArray) Unique() *SortedArray
Unique uniques the array, clear repeated items.
type SortedIntArray ¶
type SortedIntArray struct {
// contains filtered or unexported fields
}
It's using increasing order in default.
func NewSortedIntArray ¶
func NewSortedIntArray(unsafe ...bool) *SortedIntArray
NewSortedIntArray creates and returns an empty sorted array. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func NewSortedIntArrayFrom ¶
func NewSortedIntArrayFrom(array []int, unsafe ...bool) *SortedIntArray
NewIntArrayFrom creates and returns an sorted array with given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func NewSortedIntArrayFromCopy ¶
func NewSortedIntArrayFromCopy(array []int, unsafe ...bool) *SortedIntArray
NewSortedIntArrayFromCopy creates and returns an sorted array from a copy of given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func NewSortedIntArraySize ¶
func NewSortedIntArraySize(cap int, unsafe ...bool) *SortedIntArray
NewSortedIntArraySize create and returns an sorted array with given size and cap. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func (*SortedIntArray) Add ¶
func (a *SortedIntArray) Add(values ...int) *SortedIntArray
Add adds one or multiple values to sorted array, the array always keeps sorted.
func (*SortedIntArray) Chunk ¶
func (a *SortedIntArray) Chunk(size int) [][]int
Chunk splits an array into multiple arrays, the size of each array is determined by <size>. The last chunk may contain less than size elements.
func (*SortedIntArray) Clear ¶
func (a *SortedIntArray) Clear() *SortedIntArray
Clear deletes all items of current array.
func (*SortedIntArray) Clone ¶
func (a *SortedIntArray) Clone() (newArray *SortedIntArray)
Clone returns a new array, which is a copy of current array.
func (*SortedIntArray) Contains ¶
func (a *SortedIntArray) Contains(value int) bool
Contains checks whether a value exists in the array.
func (*SortedIntArray) CountValues ¶
func (a *SortedIntArray) CountValues() map[int]int
CountValues counts the number of occurrences of all values in the array.
func (*SortedIntArray) Get ¶
func (a *SortedIntArray) Get(index int) int
Get returns the value of the specified index, the caller should notice the boundary of the array.
func (*SortedIntArray) Join ¶
func (a *SortedIntArray) Join(glue string) string
Join joins array elements with a string <glue>.
func (*SortedIntArray) LockFunc ¶
func (a *SortedIntArray) LockFunc(f func(array []int)) *SortedIntArray
LockFunc locks writing by callback function <f>.
func (*SortedIntArray) Merge ¶
func (a *SortedIntArray) Merge(array interface{}) *SortedIntArray
Merge merges <array> into current array. The parameter <array> can be any garray or slice type. The difference between Merge and Append is Append supports only specified slice type, but Merge supports more parameter types.
func (*SortedIntArray) PopLeft ¶
func (a *SortedIntArray) PopLeft() int
PopLeft pops and returns an item from the beginning of array.
func (*SortedIntArray) PopLefts ¶
func (a *SortedIntArray) PopLefts(size int) []int
PopLefts pops and returns <size> items from the beginning of array.
func (*SortedIntArray) PopRand ¶
func (a *SortedIntArray) PopRand() int
PopRand randomly pops and return an item out of array.
func (*SortedIntArray) PopRands ¶
func (a *SortedIntArray) PopRands(size int) []int
PopRands randomly pops and returns <size> items out of array.
func (*SortedIntArray) PopRight ¶
func (a *SortedIntArray) PopRight() int
PopRight pops and returns an item from the end of array.
func (*SortedIntArray) PopRights ¶
func (a *SortedIntArray) PopRights(size int) []int
PopRights pops and returns <size> items from the end of array.
func (*SortedIntArray) RLockFunc ¶
func (a *SortedIntArray) RLockFunc(f func(array []int)) *SortedIntArray
RLockFunc locks reading by callback function <f>.
func (*SortedIntArray) Rand ¶
func (a *SortedIntArray) Rand() int
Rand randomly returns one item from array(no deleting).
func (*SortedIntArray) Rands ¶
func (a *SortedIntArray) Rands(size int) []int
Rands randomly returns <size> items from array(no deleting).
func (*SortedIntArray) Range ¶
func (a *SortedIntArray) Range(start, end int) []int
Range picks and returns items by range, like array[start:end]. Notice, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.
func (*SortedIntArray) Remove ¶
func (a *SortedIntArray) Remove(index int) int
Remove removes an item by index.
func (*SortedIntArray) Search ¶
func (a *SortedIntArray) Search(value int) (index int)
Search searches array by <value>, returns the index of <value>, or returns -1 if not exists.
func (*SortedIntArray) SetArray ¶
func (a *SortedIntArray) SetArray(array []int) *SortedIntArray
SetArray sets the underlying slice array with the given <array>.
func (*SortedIntArray) SetUnique ¶
func (a *SortedIntArray) SetUnique(unique bool) *SortedIntArray
SetUnique sets 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
Slice returns the underlying data of array. Notice, 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 sorts the array in increasing order. The param <reverse> controls whether sort in increasing order(default) or decreasing order.
func (*SortedIntArray) String ¶
func (a *SortedIntArray) String() string
String returns current array as a string.
func (*SortedIntArray) SubSlice ¶
func (a *SortedIntArray) SubSlice(offset, size int) []int
SubSlice returns a slice of elements from the array as specified by the <offset> and <size> parameters. If in concurrent safe usage, it returns a copy of the slice; else a pointer.
func (*SortedIntArray) Sum ¶
func (a *SortedIntArray) Sum() (sum int)
Sum returns the sum of values in an array.
func (*SortedIntArray) Unique ¶
func (a *SortedIntArray) Unique() *SortedIntArray
Unique uniques the array, clear repeated items.
type SortedStringArray ¶
type SortedStringArray struct {
// contains filtered or unexported fields
}
It's using increasing order in default.
func NewSortedStringArray ¶
func NewSortedStringArray(unsafe ...bool) *SortedStringArray
NewSortedStringArray creates and returns an empty sorted array. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func NewSortedStringArrayFrom ¶
func NewSortedStringArrayFrom(array []string, unsafe ...bool) *SortedStringArray
NewSortedStringArrayFrom creates and returns an sorted array with given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func NewSortedStringArrayFromCopy ¶
func NewSortedStringArrayFromCopy(array []string, unsafe ...bool) *SortedStringArray
NewSortedStringArrayFromCopy creates and returns an sorted array from a copy of given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func NewSortedStringArraySize ¶
func NewSortedStringArraySize(cap int, unsafe ...bool) *SortedStringArray
NewSortedStringArraySize create and returns an sorted array with given size and cap. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func (*SortedStringArray) Add ¶
func (a *SortedStringArray) Add(values ...string) *SortedStringArray
Add adds one or multiple values to sorted array, the array always keeps sorted.
func (*SortedStringArray) Chunk ¶
func (a *SortedStringArray) Chunk(size int) [][]string
Chunk splits an array into multiple arrays, the size of each array is determined by <size>. The last chunk may contain less than size elements.
func (*SortedStringArray) Clear ¶
func (a *SortedStringArray) Clear() *SortedStringArray
Clear deletes all items of current array.
func (*SortedStringArray) Clone ¶
func (a *SortedStringArray) Clone() (newArray *SortedStringArray)
Clone returns a new array, which is a copy of current array.
func (*SortedStringArray) Contains ¶
func (a *SortedStringArray) Contains(value string) bool
Contains checks whether a value exists in the array.
func (*SortedStringArray) CountValues ¶
func (a *SortedStringArray) CountValues() map[string]int
CountValues counts the number of occurrences of all values in the array.
func (*SortedStringArray) Get ¶
func (a *SortedStringArray) Get(index int) string
Get returns the value of the specified index, the caller should notice the boundary of the array.
func (*SortedStringArray) Join ¶
func (a *SortedStringArray) Join(glue string) string
Join joins array elements with a string <glue>.
func (*SortedStringArray) Len ¶
func (a *SortedStringArray) Len() int
Len returns the length of array.
func (*SortedStringArray) LockFunc ¶
func (a *SortedStringArray) LockFunc(f func(array []string)) *SortedStringArray
LockFunc locks writing by callback function <f>.
func (*SortedStringArray) Merge ¶
func (a *SortedStringArray) Merge(array interface{}) *SortedStringArray
Merge merges <array> into current array. The parameter <array> can be any garray or slice type. The difference between Merge and Append is Append supports only specified slice type, but Merge supports more parameter types.
func (*SortedStringArray) PopLeft ¶
func (a *SortedStringArray) PopLeft() string
PopLeft pops and returns an item from the beginning of array.
func (*SortedStringArray) PopLefts ¶
func (a *SortedStringArray) PopLefts(size int) []string
PopLefts pops and returns <size> items from the beginning of array.
func (*SortedStringArray) PopRand ¶
func (a *SortedStringArray) PopRand() string
PopRand randomly pops and return an item out of array.
func (*SortedStringArray) PopRands ¶
func (a *SortedStringArray) PopRands(size int) []string
PopRands randomly pops and returns <size> items out of array.
func (*SortedStringArray) PopRight ¶
func (a *SortedStringArray) PopRight() string
PopRight pops and returns an item from the end of array.
func (*SortedStringArray) PopRights ¶
func (a *SortedStringArray) PopRights(size int) []string
PopRights pops and returns <size> items from the end of array.
func (*SortedStringArray) RLockFunc ¶
func (a *SortedStringArray) RLockFunc(f func(array []string)) *SortedStringArray
RLockFunc locks reading by callback function <f>.
func (*SortedStringArray) Rand ¶
func (a *SortedStringArray) Rand() string
Rand randomly returns one item from array(no deleting).
func (*SortedStringArray) Rands ¶
func (a *SortedStringArray) Rands(size int) []string
Rands randomly returns <size> items from array(no deleting).
func (*SortedStringArray) Range ¶
func (a *SortedStringArray) Range(start, end int) []string
Range picks and returns items by range, like array[start:end]. Notice, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.
func (*SortedStringArray) Remove ¶
func (a *SortedStringArray) Remove(index int) string
Remove removes an item by index.
func (*SortedStringArray) Search ¶
func (a *SortedStringArray) Search(value string) (index int)
Search searches array by <value>, returns the index of <value>, or returns -1 if not exists.
func (*SortedStringArray) SetArray ¶
func (a *SortedStringArray) SetArray(array []string) *SortedStringArray
SetArray sets the underlying slice array with the given <array>.
func (*SortedStringArray) SetUnique ¶
func (a *SortedStringArray) SetUnique(unique bool) *SortedStringArray
SetUnique sets 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
Slice returns the underlying data of array. Notice, 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 sorts the array in increasing order. The param <reverse> controls whether sort in increasing order(default) or decreasing order.
func (*SortedStringArray) String ¶
func (a *SortedStringArray) String() string
String returns current array as a string.
func (*SortedStringArray) SubSlice ¶
func (a *SortedStringArray) SubSlice(offset, size int) []string
SubSlice returns a slice of elements from the array as specified by the <offset> and <size> parameters. If in concurrent safe usage, it returns a copy of the slice; else a pointer.
func (*SortedStringArray) Sum ¶
func (a *SortedStringArray) Sum() (sum int)
Sum returns the sum of values in an array.
func (*SortedStringArray) Unique ¶
func (a *SortedStringArray) Unique() *SortedStringArray
Unique uniques the array, clear repeated items.
type StringArray ¶
type StringArray struct {
// contains filtered or unexported fields
}
func NewStringArray ¶
func NewStringArray(unsafe ...bool) *StringArray
NewStringArray creates and returns an empty array. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func NewStringArrayFrom ¶
func NewStringArrayFrom(array []string, unsafe ...bool) *StringArray
NewStringArrayFrom creates and returns an array with given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func NewStringArrayFromCopy ¶
func NewStringArrayFromCopy(array []string, unsafe ...bool) *StringArray
NewStringArrayFromCopy creates and returns an array from a copy of given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func NewStringArraySize ¶
func NewStringArraySize(size int, cap int, unsafe ...bool) *StringArray
NewStringArraySize create and returns an array with given size and cap. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.
func (*StringArray) Append ¶
func (a *StringArray) Append(value ...string) *StringArray
See PushRight.
func (*StringArray) Chunk ¶
func (a *StringArray) Chunk(size int) [][]string
Chunk splits an array into multiple arrays, the size of each array is determined by <size>. The last chunk may contain less than size elements.
func (*StringArray) Clear ¶
func (a *StringArray) Clear() *StringArray
Clear deletes all items of current array.
func (*StringArray) Clone ¶
func (a *StringArray) Clone() (newArray *StringArray)
Clone returns a new array, which is a copy of current array.
func (*StringArray) Contains ¶
func (a *StringArray) Contains(value string) bool
Contains checks whether a value exists in the array.
func (*StringArray) CountValues ¶
func (a *StringArray) CountValues() map[string]int
CountValues counts the number of occurrences of all values in the array.
func (*StringArray) Fill ¶
func (a *StringArray) Fill(startIndex int, num int, value string) *StringArray
Fill fills an array with num entries of the value <value>, keys starting at the <startIndex> parameter.
func (*StringArray) Get ¶
func (a *StringArray) Get(index int) string
Get returns the value of the specified index, the caller should notice the boundary of the array.
func (*StringArray) InsertAfter ¶
func (a *StringArray) InsertAfter(index int, value string) *StringArray
InsertAfter inserts the <value> to the back of <index>.
func (*StringArray) InsertBefore ¶
func (a *StringArray) InsertBefore(index int, value string) *StringArray
InsertBefore inserts the <value> to the front of <index>.
func (*StringArray) Join ¶
func (a *StringArray) Join(glue string) string
Join joins array elements with a string <glue>.
func (*StringArray) LockFunc ¶
func (a *StringArray) LockFunc(f func(array []string)) *StringArray
LockFunc locks writing by callback function <f>.
func (*StringArray) Merge ¶
func (a *StringArray) Merge(array interface{}) *StringArray
Merge merges <array> into current array. The parameter <array> can be any garray or slice type. The difference between Merge and Append is Append supports only specified slice type, but Merge supports more parameter types.
func (*StringArray) Pad ¶
func (a *StringArray) Pad(size int, value string) *StringArray
Pad pads array to the specified length with <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.
func (*StringArray) PopLeft ¶
func (a *StringArray) PopLeft() string
PopLeft pops and returns an item from the beginning of array.
func (*StringArray) PopLefts ¶
func (a *StringArray) PopLefts(size int) []string
PopLefts pops and returns <size> items from the beginning of array.
func (*StringArray) PopRand ¶
func (a *StringArray) PopRand() string
PopRand randomly pops and return an item out of array.
func (*StringArray) PopRands ¶
func (a *StringArray) PopRands(size int) []string
PopRands randomly pops and returns <size> items out of array.
func (*StringArray) PopRight ¶
func (a *StringArray) PopRight() string
PopRight pops and returns an item from the end of array.
func (*StringArray) PopRights ¶
func (a *StringArray) PopRights(size int) []string
PopRights pops and returns <size> items from the end of array.
func (*StringArray) PushLeft ¶
func (a *StringArray) PushLeft(value ...string) *StringArray
PushLeft pushes one or multiple items to the beginning of array.
func (*StringArray) PushRight ¶
func (a *StringArray) PushRight(value ...string) *StringArray
PushRight pushes one or multiple items to the end of array. It equals to Append.
func (*StringArray) RLockFunc ¶
func (a *StringArray) RLockFunc(f func(array []string)) *StringArray
RLockFunc locks reading by callback function <f>.
func (*StringArray) Rand ¶
func (a *StringArray) Rand() string
Rand randomly returns one item from array(no deleting).
func (*StringArray) Rands ¶
func (a *StringArray) Rands(size int) []string
Rands randomly returns <size> items from array(no deleting).
func (*StringArray) Range ¶
func (a *StringArray) Range(start, end int) []string
Range picks and returns items by range, like array[start:end]. Notice, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.
func (*StringArray) Remove ¶
func (a *StringArray) Remove(index int) string
Remove removes an item by index.
func (*StringArray) Replace ¶
func (a *StringArray) Replace(array []string) *StringArray
Replace replaces the array items by given <array> from the beginning of array.
func (*StringArray) Reverse ¶
func (a *StringArray) Reverse() *StringArray
Reverse makes array with elements in reverse order.
func (*StringArray) Search ¶
func (a *StringArray) Search(value string) int
Search searches array by <value>, returns the index of <value>, or returns -1 if not exists.
func (*StringArray) Set ¶
func (a *StringArray) Set(index int, value string) *StringArray
Set sets value to specified index.
func (*StringArray) SetArray ¶
func (a *StringArray) SetArray(array []string) *StringArray
SetArray sets the underlying slice array with the given <array>.
func (*StringArray) Shuffle ¶
func (a *StringArray) Shuffle() *StringArray
Shuffle randomly shuffles the array.
func (*StringArray) Slice ¶
func (a *StringArray) Slice() []string
Slice returns the underlying data of array. Notice, 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 sorts 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
SortFunc sorts the array by custom function <less>.
func (*StringArray) String ¶
func (a *StringArray) String() string
String returns current array as a string.
func (*StringArray) SubSlice ¶
func (a *StringArray) SubSlice(offset, size int) []string
SubSlice returns a slice of elements from the array as specified by the <offset> and <size> parameters. If in concurrent safe usage, it returns a copy of the slice; else a pointer.
func (*StringArray) Sum ¶
func (a *StringArray) Sum() (sum int)
Sum returns the sum of values in an array.
func (*StringArray) Unique ¶
func (a *StringArray) Unique() *StringArray
Unique uniques the array, clear repeated items.