Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "fmt"
- "golang.org/x/exp/constraints"
- )
- type Numeric interface {
- int64 | float64
- }
- func Sum[K comparable, V Numeric](dict map[K]V) V {
- var sum V = 0
- for _, value := range dict {
- sum += value
- }
- return sum
- }
- func Max[T constraints.Ordered](a, b T) T {
- if a > b {
- return a
- }
- return b
- }
- func StringJoin[T any](list []T) string {
- return fmt.Sprint(list)
- }
- func main() {
- // Initialize a map for the integer values
- ints := map[string]int64{
- "first": 34,
- "second": 12,
- }
- // Initialize a map for the float values
- floats := map[string]float64{
- "first": 35.98,
- "second": 26.99,
- }
- fmt.Println(Sum(ints))
- fmt.Println(Sum(floats))
- fmt.Println(StringJoin([]int{4, 8, 16, 32}))
- fmt.Println(Max(2, 19))
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement