list.go
2.85 KB
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
package zconvert
import (
"apigame/util/ztype"
"strings"
)
/* ----- list<number> -> list<number> ----- */
func ListNumberToListNumber[T1 ztype.UtNumber, T2 ztype.UtNumber](in []T1) (out []T2) {
for _, t1 := range in {
out = append(out, T2(t1))
}
return
}
func ListIntegerToListString[T1 ztype.UtInteger](in []T1) (out []string) {
for _, t1 := range in {
out = append(out, ToStr(t1))
}
return
}
/* ----- list<string> -> list<number> ----- */
func ListStrToListNumber[T ztype.UtNumber](list []string) []T {
result := make([]T, 0)
for _, v := range list {
result = append(result, T(ToInt64(v)))
}
return result
}
func ListStrToListInt(list []string) []int {
result := make([]int, 0)
for _, v := range list {
result = append(result, ToInt(v))
}
return result
}
func ListStrToListInt32(list []string) []int32 {
result := make([]int32, 0)
for _, v := range list {
result = append(result, ToInt32(v))
}
return result
}
func ListStrToListInt64(list []string) []int64 {
result := make([]int64, 0)
for _, v := range list {
result = append(result, ToInt64(v))
}
return result
}
/* ----- string -> list<number> ----- */
func ToListStr(str string, sep string) []string {
return strings.Split(str, sep)
}
func ToListNumber[T ztype.UtNumber](str string, sep string) []T {
return ListStrToListNumber[T](strings.Split(str, sep))
}
func ToListInt(str string, sep string) []int {
return ListStrToListInt(strings.Split(str, sep))
}
func ToListInt32(str string, sep string) []int32 {
return ListStrToListInt32(strings.Split(str, sep))
}
/* ----- string -> list<list<number>> ----- */
func ToListListStr(str string, sep1, sep2 string) [][]string {
result := make([][]string, 0)
list1 := strings.Split(str, sep1)
for _, v := range list1 {
list2 := strings.Split(v, sep2)
result = append(result, list2)
}
return result
}
func ToListListNumber[T ztype.UtNumber](str string, sep1, sep2 string) [][]T {
result := make([][]T, 0)
list1 := strings.Split(str, sep1)
for _, v := range list1 {
list2 := strings.Split(v, sep2)
result = append(result, ListStrToListNumber[T](list2))
}
return result
}
func ToListListInt(str string, sep1, sep2 string) [][]int {
result := make([][]int, 0)
list1 := strings.Split(str, sep1)
for _, v := range list1 {
list2 := strings.Split(v, sep2)
result = append(result, ListStrToListInt(list2))
}
return result
}
func ToListListInt32(str string, sep1, sep2 string) [][]int32 {
result := make([][]int32, 0)
list1 := strings.Split(str, sep1)
for _, v := range list1 {
list2 := strings.Split(v, sep2)
result = append(result, ListStrToListInt32(list2))
}
return result
}
func ToListListInt64(str string, sep1, sep2 string) [][]int64 {
result := make([][]int64, 0)
list1 := strings.Split(str, sep1)
for _, v := range list1 {
list2 := strings.Split(v, sep2)
result = append(result, ListStrToListInt64(list2))
}
return result
}