-
Notifications
You must be signed in to change notification settings - Fork 0
/
xint8_slice_api.go
79 lines (64 loc) · 1.61 KB
/
xint8_slice_api.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package int8Array
import "errors"
import . "github.com/go-xe2/x/type/slice/comm"
func (iar TInt8Slice) Contain(item int8) bool {
return Contain(iar, item)
}
func (iar TInt8Slice) ForEach(fn Int8ArrForEachFunc) {
ForEach(iar, fn)
}
func (iar TInt8Slice) Find(fn Int8ArrSearchFunc) int8 {
return Find(iar, fn)
}
func (iar TInt8Slice) FindIndex(fn Int8ArrSearchFunc) int {
return FindIndex(iar, fn)
}
func (iar TInt8Slice) Sort(comparer ...ArrSortCompareFunc) {
Sort(iar, comparer...)
}
func (iar TInt8Slice) Size() int {
return len(iar)
}
func (iar *TInt8Slice) Append(item ...int8) int {
*iar = TInt8Slice(append(*iar, item...))
return iar.Size()
}
func (iar *TInt8Slice) Prepend(item ...int8) int {
old := *iar
*iar = append(make([]int8, 0), item...)
*iar = append(*iar, old...)
return len(*iar)
}
func (iar *TInt8Slice) Insert(index int, item int8) error {
if index < 0 || index >= iar.Size() {
return errors.New("数组下标越界")
}
old := *iar
*iar = append(old[:index], item)
*iar = append(*iar, old[index:]...)
return nil
}
func (iar *TInt8Slice) Clear() {
*iar = make([]int8, 0)
}
func (iar *TInt8Slice) Delete(index int) error {
if index < 0 || index >= iar.Size() {
return errors.New("数组下标越界")
}
old := *iar
*iar = append(make([]int8, 0), old[:index-1]...)
*iar = append(*iar, old[index+1:]...)
return nil
}
func (iar *TInt8Slice) Concat(arrs ...[]int8) int {
for _, nar := range arrs {
*iar = append(*iar, nar...)
}
return iar.Size()
}
func (iar TInt8Slice) Join(sep string) string {
return Join(iar, sep)
}
func (iar TInt8Slice) String() string {
return String(iar)
}