只有当您传递给可变参数函数的切片代替可变参数时,可变参数才能被扩展。出于这个原因,您不能在单个可变参数中组合单个参数和扩展切片。当您使用扩展时,该函数接收“扩展”切片本身作为其可变参数 - 它是语义糖,可能会令人困惑,因为这些调用不等效:foo := []string{"alpha","beta"}bar(foo...) // bar receives the foo slice as its variadic parameterbar(foo[0], foo[1]) // bar receives a new slice with these elements copied to it您可以在规范中找到更多详细信息,尽管他们使用的示例使一些解释不清楚,因为他们的示例可变参数函数具有多个参数。以“如果最终参数是可赋值的”开头的部分指的是“最终参数”,而不是一般的“可变参数函数的最终参数”意义上的,而是特定的“示例中函数的最终参数”意义上的。