# 可变参数

URL: https://caijiao.org/go/01-go-basic/15-variadic
Source: docs/go/01-go-basic/15-variadic.md
Description: 本节介绍 Go 语言中的可变参数用法，允许函数接受任意数量的参数，增强函数的灵活性。

可变参数允许函数接受任意数量的同类型参数，使用语法 `...` 表示。

## 1. 可变参数定义

```go
func sum(nums ...int) int {
    total := 0
    for _, num := range nums {
        total += num
    }
    return total
}
````

## 2. 调用示例

```go
result := sum(1, 2, 3, 4, 5)
fmt.Println(result) // 输出：15
```

也可以传入切片，使用展开操作符 `...`：

```go
numbers := []int{1, 2, 3}
result := sum(numbers...)
```

## 3. 可变参数与普通参数

可变参数必须是函数参数列表的最后一个：

```go
func printMsg(prefix string, msgs ...string) {
    fmt.Println(prefix)
    for _, msg := range msgs {
        fmt.Println(msg)
    }
}
```

---

可变参数增强函数的适用范围，方便处理不确定数量的输入。
