MyTetra Share
Делитесь знаниями!
Функции в Golang
Время создания: 12.11.2020 23:02
Автор: br0ke
Текстовые метки: go, golang, func, function, functions
Раздел: Информационные технологии - Golang
Запись: and-semakin/mytetra_data/master/base/1605204146r493vwfeu1/text.html на raw.githubusercontent.com

Функция -- блок операторов, которые все вместе выполняют определенную задачу. Типичный синтаксис для определения функции:


func имя_функции (список_параметров) (типы_возвращаемых_значений) {

    выполняемые_операторы

}


Пример:


func main() {

hello()

}


func hello() {

    fmt.Println("Hello World")

}


Типы параметров функции и типы возвращаемых значений должны быть обязательно указаны в заголовке функции. Если несколько параметров функции имеют один и тот же тип, то можно типизировать только последний из них, а остальные примут такой же тип:


func add(x, y int, a, b, c float32){

var z = x + y

var d = a + b + c

fmt.Println("x + y = ", z)

fmt.Println("a + b + c = ", d)

}


Возврат значений из функции производится при помощи операции return. После return нужно записать одного или несколько возвращаемых значений через запятую. Если функция возвращает одно значение, то его тип должен быть записан после списка параметров функции без скобок:


func add(x, y int) int {

return x + y

}


Если же функция возвращает несколько значений, то их типы должны быть указаны в скобках:


func add(x, y int, firstName, lastName string) (int, string) {

var z int = x + y

var fullName = firstName + " " + lastName

return z, fullName

}


Кроме того, возвращаемым значениям сразу же можно назначить имена, тогда они будут доступны в теле функции, их можно будет изменять:


func sumInt(n ...int ) (c, s int) {

for _, e := range n {

c++

s+=e

}

return

}


В таком случае в конце функции в операции return можно не передавать возвращаемые значения -- они будут взяты из сигнатуры функции.


В примере выше n ...int означает, что функция принимает произвольное количество параметров, которые все попадут в срез с именем n. Точно такой же синтаксис с ... (многоточием) в других местах в коде не в списке параметров функции) будет означать распаковку/раскрытие массива или среза. См. удаление элемента из слайса при помощи append.

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования