go.charczuk.com@v0.0.0-20240327042549-bc490516bd1a/sdk/mathutil/min_max.go (about) 1 /* 2 3 Copyright (c) 2023 - Present. Will Charczuk. All rights reserved. 4 Use of this source code is governed by a MIT license that can be found in the LICENSE file at the root of the repository. 5 6 */ 7 8 package mathutil 9 10 import "cmp" 11 12 // MinMax returns both the min and max in one pass. 13 func MinMax[T cmp.Ordered](values []T) (min, max T) { 14 if len(values) == 0 { 15 return 16 } 17 min = values[0] 18 max = values[0] 19 for _, v := range values { 20 if max < v { 21 max = v 22 } 23 if min > v { 24 min = v 25 } 26 } 27 return 28 }