package main

import "fmt"

type Number interface {
    int | int32 | int64 | float32 | float64
}

func sumNumbers[T Number](numbers []T) T {
    var result T
    for _, v := range numbers {
        result += v
    }
    return result
}

func main() {
    i   := []int{1, 2, 3, 4, 5}
    i32 := []int32{1, 2, 3, 4, 5}
    i64 := []int64{1, 2, 3, 4, 5}
    f32 := []float32{1.1, 2.1, 3.1, 4.1, 5.1}
    f64 := []float64{1.1, 2.1, 3.1, 4.1, 5.1}
    
    fmt.Println(sumNumbers(i))
    fmt.Println(sumNumbers(i32))
    fmt.Println(sumNumbers(i64))
    fmt.Println(sumNumbers(f32))
    fmt.Println(sumNumbers(f64))
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: