mirror of
https://github.com/duke-git/lancet.git
synced 2025-10-05 15:36:52 +08:00
feat: add MaxBy function
This commit is contained in:
@@ -106,6 +106,27 @@ func Max[T lancetconstraints.Number](numbers ...T) T {
|
|||||||
return max
|
return max
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MaxBy search the maximum value of a slice using the given comparator function.
|
||||||
|
func MaxBy[T any](slice []T, comparator func(T, T) bool) T {
|
||||||
|
var max T
|
||||||
|
|
||||||
|
if len(slice) == 0 {
|
||||||
|
return max
|
||||||
|
}
|
||||||
|
|
||||||
|
max = slice[0]
|
||||||
|
|
||||||
|
for i := 1; i < len(slice); i++ {
|
||||||
|
val := slice[i]
|
||||||
|
|
||||||
|
if comparator(val, max) {
|
||||||
|
max = val
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return max
|
||||||
|
}
|
||||||
|
|
||||||
// Min return min value of params
|
// Min return min value of params
|
||||||
func Min[T lancetconstraints.Number](numbers ...T) T {
|
func Min[T lancetconstraints.Number](numbers ...T) T {
|
||||||
min := numbers[0]
|
min := numbers[0]
|
||||||
|
Reference in New Issue
Block a user