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

Несколько результатов в Go

Давайте теперь будем возвращать из функции сразу два значения. После параметров в скобках перечисляют типы результатов через запятую. В return передают два выражения в том же порядке. Это один возврат пары, а не два отдельных вызова.

Найдем меньшее и большее из двух целых функцией func:

package main import "fmt" func func(a, b int) (int, int) { if a < b { return a, b } return b, a } func main() { lo, hi := func(3, 1) fmt.Println(lo, hi) // выведет 1 3 }

Переменные lo и hi получают пару значений одной командой присваивания. Порядок слева совпадает с порядком в return.

Если второе значение не нужно, его кладут в пустой идентификатор:

package main import "fmt" func func(a, b int) (int, int) { if a < b { return a, b } return b, a } func main() { lo, _ := func(5, 9) fmt.Println(lo) // выведет 5 }

Даны числа:

x := 8 y := 3

Напишите функцию func с параметрами a и b, которая возвращает частное и остаток от деления. Выведите оба результата для x и y.

Напишите функцию func с параметром-срезом []int, которая возвращает первый и последний элемент. Для среза из одного числа оба результата совпадают. Срез в вызове пусть будет непустым.

Скажите, как отбросить второй результат функции с двумя значениями, не сохраняя его.

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