РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
49 of 1593 menu

Тип функции

Тип функции в Go определяет сигнатуру функции - набор типов параметров и возвращаемых значений. Объявление типа функции позволяет создавать пользовательские типы на основе этой сигнатуры, что дает возможность использовать функции как значения, передавать их в другие функции и создавать более гибкие абстракции. В первый параметр мы передаем тип функции, во второй параметр мы передаем значение этого типа.

Синтаксис

type FuncType func(param1 Type1, param2 Type2) ReturnType

Пример

Давайте объявим тип функции, который принимает два целых числа и возвращает их сумму:

package main import "fmt" type Operation func(int, int) int func add(a int, b int) int { return a + b } func main() { var op Operation = add res := op(5, 3) fmt.Println(res) }

Результат выполнения кода:

8

Пример

Давайте используем тип функции как параметр другой функции:

package main import "fmt" type Process func(string) string func toUpper(s string) string { return "UPPER: " + s } func execute(p Process, input string) string { return p(input) } func main() { res := execute(toUpper, "abcde") fmt.Println(res) }

Результат выполнения кода:

"UPPER: abcde"

Пример

Давайте создадим тип функции, которая возвращает несколько значений:

package main import "fmt" type Divider func(int, int) (int, error) func divide(a int, b int) (int, error) { if b == 0 { return 0, fmt.Errorf("division by zero") } return a / b, nil } func main() { var d Divider = divide res, err := d(10, 2) if err != nil { fmt.Println(err) } else { fmt.Println(res) } }

Результат выполнения кода:

5

Смотрите также

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