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 }