Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goPmErMR 290 of 350 menu
◀ ▶

Два результата и ошибка в Go

Сбой оформляют вторым результатом функции. Первый результат - то, что нужно при успехе: число, строка или другой тип. Второй имеет тип error и сообщает, удалась ли операция. При удачном завершении вторым значением служит nil.

Запишем функцию, которая возвращает элемент среза по индексу. Пока индекс в задачах остается допустимым, второй результат - только nil:

package main import "fmt" func itemAt(nums []int, index int) (int, error) { return nums[index], nil } func main() { nums := []int{1, 2, 3} val, err := itemAt(nums, 0) fmt.Println(val, err) // выведет 1 <nil> }

Переменные val и err получают пару одной командой. Порядок слева совпадает с порядком в return: сначала элемент, затем ошибка.

Та же схема подходит для строки. Функция возвращает имя и nil, если строка не пустая:

package main import "fmt" func greet(name string) (string, error) { return name, nil } func main() { msg, err := greet("Ann") fmt.Println(msg, err) // выведет Ann <nil> }

Дан срез целых чисел из трех элементов. Напишите функцию с параметрами среза и индекса, которая возвращает элемент и nil. Вызовите ее с индексом 0 и выведите оба результата.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить