Go.Основы.Функции и указатели

Go.Основы.Функции и указатели

https://t.me/HotCheatSheet
Функции

func имя_функции(имя_аргумента тип_аргумента, …) (тип_возвращемого_значения1, тип_возвращемого_значения2, ...) {}

Пример:

func f(v) int {
    return v
}

func main() {
    x := f(5)
}
Замыкания
import "fmt"

func main() {
    f := func(v1, v2 int) int {
        return v1 + v2
    }
    fmt.Println(add(2,2))    
}
Рекурсия
func factorial(v1 uint) uint {
    if v1 == 0 {
        return 1
    }

    return v1 * factorial(v1-1)
}
Паника и восстановление

panic — функция, для генерации ошибки выполнения.

recover — возвращает значение, которое было передано функции panic. Обычно используется вместе с оператором defer.

Пример:

import "fmt"

func main() {
    defer func() {    
        str := recover()
        fmt.Println(str)
    }()
    panic("PANIC")
}
Указатели - *, &, new

Пример с * и &:

func f1(v1 *int) {
    *v1 = 0
}
func main() {
    x := 5
    f1(&x)
    fmt.Println(x) // x равен 0
}

Пример с new:

func f2(v2 *int) {
    *v2 = 1
}
func main() {
    v2 := new(int)
    f2(v2)
    fmt.Println(*v) // x равен 1
}

Report Page