...
1 package funk
2
3 import "strings"
4
5
6
7
8 func MinInt(i []int) int {
9 if len(i) == 0 {
10 panic("arg is an empty array/slice")
11 }
12 var min int
13 for idx := 0; idx < len(i); idx++ {
14 item := i[idx]
15 if idx == 0 {
16 min = item
17 continue
18 }
19 if item < min {
20 min = item
21 }
22 }
23 return min
24 }
25
26
27
28
29 func MinInt8(i []int8) int8 {
30 if len(i) == 0 {
31 panic("arg is an empty array/slice")
32 }
33 var min int8
34 for idx := 0; idx < len(i); idx++ {
35 item := i[idx]
36 if idx == 0 {
37 min = item
38 continue
39 }
40 if item < min {
41 min = item
42 }
43 }
44 return min
45 }
46
47
48
49
50 func MinInt16(i []int16) int16 {
51 if len(i) == 0 {
52 panic("arg is an empty array/slice")
53 }
54 var min int16
55 for idx := 0; idx < len(i); idx++ {
56 item := i[idx]
57 if idx == 0 {
58 min = item
59 continue
60 }
61 if item < min {
62 min = item
63 }
64 }
65 return min
66 }
67
68
69
70
71 func MinInt32(i []int32) int32 {
72 if len(i) == 0 {
73 panic("arg is an empty array/slice")
74 }
75 var min int32
76 for idx := 0; idx < len(i); idx++ {
77 item := i[idx]
78 if idx == 0 {
79 min = item
80 continue
81 }
82 if item < min {
83 min = item
84 }
85 }
86 return min
87 }
88
89
90
91
92 func MinInt64(i []int64) int64 {
93 if len(i) == 0 {
94 panic("arg is an empty array/slice")
95 }
96 var min int64
97 for idx := 0; idx < len(i); idx++ {
98 item := i[idx]
99 if idx == 0 {
100 min = item
101 continue
102 }
103 if item < min {
104 min = item
105 }
106 }
107 return min
108 }
109
110
111
112
113 func MinFloat32(i []float32) float32 {
114 if len(i) == 0 {
115 panic("arg is an empty array/slice")
116 }
117 var min float32
118 for idx := 0; idx < len(i); idx++ {
119 item := i[idx]
120 if idx == 0 {
121 min = item
122 continue
123 }
124 if item < min {
125 min = item
126 }
127 }
128 return min
129 }
130
131
132
133
134 func MinFloat64(i []float64) float64 {
135 if len(i) == 0 {
136 panic("arg is an empty array/slice")
137 }
138 var min float64
139 for idx := 0; idx < len(i); idx++ {
140 item := i[idx]
141 if idx == 0 {
142 min = item
143 continue
144 }
145 if item < min {
146 min = item
147 }
148 }
149 return min
150 }
151
152
153
154
155 func MinString(i []string) string {
156 if len(i) == 0 {
157 panic("arg is an empty array/slice")
158 }
159 var min string
160 for idx := 0; idx < len(i); idx++ {
161 item := i[idx]
162 if idx == 0 {
163 min = item
164 continue
165 }
166 min = compareStringsMin(min, item)
167 }
168 return min
169 }
170
171 func compareStringsMin(min, current string) string {
172 r := strings.Compare(strings.ToLower(min), strings.ToLower(current))
173 if r < 0 {
174 return min
175 }
176 return current
177 }
178
View as plain text