38 lines
473 B
Go
38 lines
473 B
Go
package math
|
|
|
|
func Max[T SignedNumber](nLst ...T) T {
|
|
switch len(nLst) {
|
|
case 0:
|
|
var zeroT T
|
|
return zeroT
|
|
case 1:
|
|
return nLst[0]
|
|
default:
|
|
m := nLst[0]
|
|
for _, n := range nLst[1:] {
|
|
if m < n {
|
|
m = n
|
|
}
|
|
}
|
|
return m
|
|
}
|
|
}
|
|
|
|
func Min[T SignedNumber](nLst ...T) T {
|
|
switch len(nLst) {
|
|
case 0:
|
|
var zeroT T
|
|
return zeroT
|
|
case 1:
|
|
return nLst[0]
|
|
default:
|
|
m := nLst[0]
|
|
for _, n := range nLst[1:] {
|
|
if m > n {
|
|
m = n
|
|
}
|
|
}
|
|
return m
|
|
}
|
|
}
|