一尘不染

将数组解包为参数

go

所以在 Python 和 Ruby 中有用于将数组解包为参数的 splat 运算符 (*)。在 Javascript 中有 .apply() 函数。有没有办法在 Go 中将数组/切片解包为函数参数?这方面的任何资源也会很棒!

类似的东西:

func my_func(a, b int) (int) {
    return a + b
}

func main() {
    arr := []int{2,4}
    sum := my_func(arr)
}

如果我犯了句法/各种错误,我深表歉意。我是 Go 的新手。


阅读 189

收藏
2021-11-17

共1个答案

一尘不染

您可以使用类似于 C 的 vararg 语法:

package main
import "fmt"

func my_func( args ...int) int {
   sum := 0
   for _,v := range args {
      sum = sum + v
   }

   return sum;
}

func main() {
    arr := []int{2,4}
    sum := my_func(arr...)
    fmt.Println("Sum is ", sum)
}

现在,您可以根据需要汇总任意数量的内容。请注意...调用该my_func函数时的重要之后。

2021-11-17