# 多返回值

URL: https://caijiao.org/go/01-go-basic/13-multi-return
Source: docs/go/01-go-basic/13-multi-return.md
Description: 本节深入讲解 Go 语言的多返回值特性，展示如何通过函数返回多个结果，提升代码表达力和错误处理能力。

Go 语言支持函数返回多个值，这是它的一大特色，广泛用于返回结果和错误信息。

## 1. 多返回值定义

函数返回多个值时，用括号包裹返回类型：

```go
func divide(a, b int) (int, int) {
    quotient := a / b
    remainder := a % b
    return quotient, remainder
}
````

## 2. 多返回值调用

调用时需要用多个变量接收：

```go
q, r := divide(10, 3)
fmt.Println(q, r) // 输出：3 1
```

如果不需要某个返回值，可以使用空白标识符 `_`：

```go
q, _ := divide(10, 3)
```

## 3. 错误处理示例

多返回值常用来返回结果和错误：

```go
func sqrt(value float64) (float64, error) {
    if value < 0 {
        return 0, fmt.Errorf("负数没有平方根")
    }
    return math.Sqrt(value), nil
}
```

调用时：

```go
result, err := sqrt(-1)
if err != nil {
    fmt.Println("错误:", err)
} else {
    fmt.Println("结果:", result)
}
```

---

多返回值让函数设计更加灵活，方便同时返回多个相关信息。
