From 66f06e8dd96bdaaac539bc1cc0e6ecd3a53b42a6 Mon Sep 17 00:00:00 2001 From: John O'Keefe Date: Sat, 4 Nov 2023 13:08:46 -0400 Subject: [PATCH] variadic max and inrange functions --- playground/variadic.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 playground/variadic.go diff --git a/playground/variadic.go b/playground/variadic.go new file mode 100644 index 0000000..58cc2d2 --- /dev/null +++ b/playground/variadic.go @@ -0,0 +1,33 @@ +package main + +import ( + "fmt" + "math" +) + +func maximum(numbers ...float64) float64 { + max := math.Inf(-1) + for _, number := range numbers { + if number > max { + max = number + } + } + return max +} + +func inRange(min float64, max float64, numbers ...float64) []float64 { + var result []float64 + for _, number := range numbers { + if number >= min && number <= max { + result = append(result, number) + } + } + return result +} + +func variadic() { + fmt.Println(maximum(71.8, 56.2, 89.5)) + fmt.Println(maximum(90.7, 89.7, 98.5, 92.3)) + fmt.Println(inRange(1, 100, -12.5, 3.2, 0, 50, 103.5)) + fmt.Println(inRange(-10, 10, 4.1, 12, -12, -5.2)) +}