Functions

Функции (Functions)|Functions #

// _Функции_ это сердце языка Go. Мы посмотрим
// использование функций на нескольих примерах.

package main

import "fmt"

// Эта функция принимает в качестве аргументов
// два целых числа и возвращает их сумму, так
// же с типом целое число.
func plus(a int, b int) int {

	// Go требует явного указания типа возвращаемого
	// значение, то есть он не будет автоматически
	// возвращать значение последнего выражения.
	return a + b
}

// Если функция принимает несколько аргументов с
// одинаковым типом, то вы можете перечислить аргументы
// через запятую и указать тип один раз.
func plusPlus(a, b, c int) int {
	return a + b + c
}

func main() {

	// Вызов функции осуществялется через запись
	// `функция(аргументы)`.
	res := plus(1, 2)
	fmt.Println("1+2 =", res)

	res = plusPlus(1, 2, 3)
	fmt.Println("1+2+3 =", res)
}
$ go run functions.go 
1+2 = 3
1+2+3 = 6

# Есть несколько других особенностей для функций в Go.
# Одной из них является возможнсоть возврата нескольких
# значений, которые мы рассмотрим далее.