26 lines
330 B
Go
26 lines
330 B
Go
package util
|
|
|
|
type Unsigned interface {
|
|
int | int8 | int16 | int32 | int64 | float32 | float64
|
|
}
|
|
|
|
func MaxI[T Unsigned](x ...T) T {
|
|
if len(x) == 0 {
|
|
return 0
|
|
}
|
|
tmp := x[0]
|
|
for _, v := range x {
|
|
if tmp < v {
|
|
tmp = v
|
|
}
|
|
}
|
|
return tmp
|
|
}
|
|
|
|
func AbsI[T Unsigned](a T) T {
|
|
if a > 0 {
|
|
return a
|
|
} else {
|
|
return -a
|
|
}
|
|
}
|