Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Создание функций
- Входные данные (параметры) функции Выходные данные (возвращаемое значение) функции
- || ||
- VV VV
- func name(paraml type, param2 type) type { // body '
- } ^^
- ||
- Входные данные (параметры) функции
- !!!! НЕЙМИНГ КАК МОДИФИКАТОР ДОСТУПА
- Foo() - будет видна из вне
- foo() - будет приватной функцией пакета
- //Возврат нескольких значений
- func multiReturn() (int, int, int) {
- return 1, 2, 3
- }
- a, b , _ := multiReturn()
- _ - игнорирование результата
- //Возврат нескольких именованных значений
- func multiReturn() (a int,b int,c int) {
- a = 1
- b = 2
- c = 3
- return // или return a,b,c
- }
- Советы
- Соглашение по именованию функций в Go - camelCase
- func myReallyLongFunctionName() {}
- Функция как переменная
- -----------------------
- var multiplier func(x, у int) int
- multiplier = func(x, у int) int { return x * у}
- fmt.Printin(multiplier(first, second))
- divider := func(x, у int) int { return x / у }
- fmt.Printin(divider(second, first))
- Прием функций как агрумента
- ----------------------------
- //прием функции
- tunc calculate(x, у int, action func(x у int) int) int
- {
- return action(x, y)
- }
- //Возврат функции из функции
- func createDivider(divider int) func(x int) int {
- return func(x int) int {
- return x / divider
- }
- }
- Замыкание
- -------------------------------
- тело функции замыкается на переменную
- и возвращает актуальное знгачение.
- dollar := 36
- func getDollarValue() int {
- return dollar
- }
- fat.Prlntln(getDollarValue())
- dollar = 76
- fat.Println(gotDollarValue())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement