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
}