github.com/traefik/yaegi@v0.15.1/_test/gen2.go (about) 1 package main 2 3 import "fmt" 4 5 // SumIntsOrFloats sums the values of map m. It supports both int64 and float64 6 // as types for map values. 7 func SumIntsOrFloats[K comparable, V int64 | float64](m map[K]V) V { 8 var s V 9 for _, v := range m { 10 s += v 11 } 12 return s 13 } 14 15 func main() { 16 // Initialize a map for the integer values 17 ints := map[string]int64{ 18 "first": 34, 19 "second": 12, 20 } 21 22 // Initialize a map for the float values 23 floats := map[string]float64{ 24 "first": 35.98, 25 "second": 26.99, 26 } 27 28 fmt.Printf("Generic Sums: %v and %v\n", 29 SumIntsOrFloats[string, int64](ints), 30 SumIntsOrFloats[string, float64](floats)) 31 } 32 33 // Output: 34 // Generic Sums: 46 and 62.97