对 add() 函数调用正确的是?

func add(args ...int) int {
    sum := 0
    for _, arg := range args {
        sum += arg
    }
    return sum
}
  • A. add(1, 2)
  • B. add(1, 3, 7)
  • C. add([]int{1, 2})
  • D. add([]int{1, 3, 7}…)

A B D 在线运行

Go官方文档-Passing_arguments_to_…_parameters

add 是一个可变参数函数,接受任意数量的 int 类型参数。
参数 args 的类型是 …int,在函数内部表现为 []int(即一个 int 类型的切片)。
虽然 []int 和 …int 在底层都是切片,但 Go 语言的类型系统要求显式地将切片展开为可变参数。