Some work
This commit is contained in:
@@ -21,7 +21,9 @@ THE SOFTWARE.
|
||||
*/
|
||||
package helpers
|
||||
|
||||
import "cmp"
|
||||
import (
|
||||
"cmp"
|
||||
)
|
||||
|
||||
const (
|
||||
MaxUint = ^uint(0)
|
||||
@@ -30,6 +32,18 @@ const (
|
||||
MinInt = -MaxInt - 1
|
||||
)
|
||||
|
||||
func MaxFor[O interface{}, E cmp.Ordered](g func(O) E, of ...O) O {
|
||||
var m O
|
||||
var mE E
|
||||
for i := range of {
|
||||
if g(of[i]) > mE {
|
||||
m = of[i]
|
||||
mE = g(of[i])
|
||||
}
|
||||
}
|
||||
return m
|
||||
}
|
||||
|
||||
func Max[E cmp.Ordered](of ...E) E {
|
||||
var m E
|
||||
if len(of) > 0 {
|
||||
@@ -43,6 +57,18 @@ func Max[E cmp.Ordered](of ...E) E {
|
||||
return m
|
||||
}
|
||||
|
||||
func MinFor[O interface{}, E cmp.Ordered](g func(O) E, of ...O) O {
|
||||
var m O
|
||||
var mE E
|
||||
for i := range of {
|
||||
if g(of[i]) < mE {
|
||||
m = of[i]
|
||||
mE = g(of[i])
|
||||
}
|
||||
}
|
||||
return m
|
||||
}
|
||||
|
||||
func Min[E cmp.Ordered](of ...E) E {
|
||||
var m E
|
||||
if len(of) > 0 {
|
||||
|
||||
Reference in New Issue
Block a user