14 Функции
Как функция возвращает несколько значений?
Ответ
В списке результатов пишут несколько типов, чаще всего значение и error. Вызывающий принимает их парой: n, err := parse(raw). Ненужный результат отбрасывают подчёркиванием: _, err := parse(raw).
Подробнее
Имена у результатов необязательны. Именованные результаты (func f() (n int, err error)) удобны в коротких функциях, но в длинных они прячут, что именно вернулось. Явный return n, err читается проще.
package main
import (
"fmt"
"strconv"
)
func parse(raw string) (int, error) {
return strconv.Atoi(raw)
}
func main() {
n, err := parse("42")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(n)
if _, err := parse("x"); err != nil {
fmt.Println("второе значение — ошибка:", err)
}
}