package main
import "fmt"
func main() {
f := []float64{1.0, 2.0, 3.0, 4.0, 5.0}
i := []int64{1, 2, 3, 4, 5}
s1 := SumOfFloat(f)
s2 := SumOfIntegers(i)
fmt.Println("Sum for float64 :", s1)
fmt.Println("Sum for int64 :", s2)
func SumOfFloat(nums []float64) float64 {
var sum float64
for _, num := range nums {
sum += num
return sum
func SumOfIntegers(nums []int64) int64 {
var sum int64
for _, num := range nums {
sum += num
return sum
运行输出结果:
$ go run main.go Sum for float64 : 15 Sum for int64 : 15
package main
import "fmt"
func main() {
f := []float64{1.0, 2.0, 3.0, 4.0, 5.0}
i := []int64{1, 2, 3, 4, 5}
s1 := genericSum(f)
s2 := genericSum(i)
fmt.Println("Sum for float64 :", s1)
fmt.Println("Sum for int64 :", s2)
func genericSum[N int64 | float64](nums []N) N {
var sum N
for _, num := range nums {
sum += num
return sum
输出结果:
$ go run main.go Sum for float64 : 15 Sum for int64 : 15
package main
import "fmt"
type Number interface {
int64 | float64
func main() {
f := []float64{1.0, 2.0, 3.0, 4.0, 5.0}
i := []int64{1, 2, 3, 4, 5}
s1 := genericSum(f)
s2 := genericSum(i)
fmt.Println("Sum for float64 :", s1)
fmt.Println("Sum for int64 :", s2)
func genericSum[N Number](nums []N) N {
var sum N
for _, num := range nums {
sum += num
return sum