Golang的可变参数和切片之间的关系

可变参数的原理是:将传入的一个或多个参数转换为一个新的切片。
比如:

func add(nums ...int) int {
      var sum int
      for _, val := range nums{
            sum += val
      }
      return sum
}

func main(){
      sum := add(1,2,3,4,5)
      fmt.Println(sum)
}

如果想直接传入一个切片当作参数(而不是将这个切片再转换为一个新的切片),可以在实参的后面加上...,像这样:

func main(){
      nums := []int{1,2,3,4,5}
      sum := add(nums...)
      fmt.Println(sum)
}
posted @ 2021-02-13 20:46  pangqianjin  阅读(440)  评论(0编辑  收藏  举报