Функции в Go
Функции
Функция — фрагмент программного кода, к которому можно обратиться из другого места программы
Функция является независимой частью кода, связывающая один или несколько входных параметров с одним или несколькими выходными параметрами
Синтаксис

Функции создаются при помощи ключевого слова func.

func Название(принимаемый переменные) (возвращаемые переменные)
							 func human(name, surname string, age int) (string, string) { 
							 // do some action 
							 } 
						
Возврат нескольких значений
							 func f() (int, int) { 
							 return 5, 6 
							 } 
							 func main() { 
						     x, y := f() 
							 } 
						
Переменное число аргументов функции
Использование ... перед типом последнего аргумента означает, что функция может содержать ноль и более таких параметров.
								 func add (args ...int) int { 
								 total := 0 
								 for _, v := range args { 
								 total += v 
								 } 
								 return total 
								 } 
								 func main() { 
								 fmt.Println(add(1,2,3)) 
								 } 
							
Замыкание
Замыкание - это функция вместе с сопутствующим окружением
Замыкание возникает только тогда, когда функция, содержащая свободные переменные, объединяется с окружением, которое предоставляет привязки для всех свободных переменных.
Рекурсия
Рекурсия - это когда функция вызывает сама себя
								 func fact(x uint) uint { 
								 if x == 0 { 
								 return 1 
								 } 
								 return x * fact(x-1) 
								 } 
							

Презентация и исходный код

github.com/lowl-io/screencast