Go - Функции
Функция - это группа операторов, которые вместе выполняют задачу. Каждая программа Go имеет как минимум одну функцию, а именно:main(). Вы можете разделить свой код на отдельные функции. Как разделить код между различными функциями - решать вам, но логически разделение должно быть таким, чтобы каждая функция выполняла определенную задачу.
Функция declarationсообщает компилятору об имени функции, типе возвращаемого значения и параметрах. Функцияdefinition предоставляет фактическое тело функции.
Стандартная библиотека Go предоставляет множество встроенных функций, которые может вызывать ваша программа. Например, функцияlen()принимает аргументы различных типов и возвращает длину типа. Если ему передана строка, функция возвращает длину строки в байтах. Если ей передается массив, функция возвращает длину массива.
Функции также известны как method, sub-routine, или же procedure.
Определение функции
Общая форма определения функции на языке программирования Go следующая:
func function_name( [parameter list] ) [return_types]
{
body of the function
}
Определение функции в языке программирования Go состоит из заголовка функции и тела функции . Вот все части функции -
Func - Начинает объявление функции.
Function Name- Это настоящее имя функции. Имя функции и список параметров вместе составляют сигнатуру функции.
Parameters- Параметр похож на заполнитель. Когда функция вызывается, вы передаете значение параметру. Это значение называется фактическим параметром или аргументом. Список параметров относится к типу, порядку и количеству параметров функции. Параметры не обязательны; то есть функция может не содержать параметров.
Return Type- Функция может возвращать список значений. Return_types - это список типов данных значений, возвращаемых функцией. Некоторые функции выполняют желаемые операции без возврата значения. В этом случае return_type не требуется.
Function Body - Он содержит набор операторов, определяющих, что делает функция.
пример
В следующем исходном коде показана функция с именем max(). Эта функция принимает два параметра num1 и num2 и возвращает максимум между двумя -
/* function returning the max between two numbers */
func max(num1, num2 int) int {
/* local variable declaration */
result int
if (num1 > num2) {
result = num1
} else {
result = num2
}
return result
}
Вызов функции
Создавая функцию Go, вы даете определение того, что функция должна делать. Чтобы использовать функцию, вам нужно будет вызвать эту функцию для выполнения определенной задачи.
Когда программа вызывает функцию, управление программой передается вызываемой функции. Вызываемая функция выполняет определенную задачу, и когда выполняется ее оператор return или когда достигается закрывающая скобка, завершающая функцию, она возвращает управление программой обратно в основную программу.
Чтобы вызвать функцию, вам просто нужно передать необходимые параметры вместе с ее именем. Если функция возвращает значение, вы можете сохранить возвращенное значение. Например -
package main
import "fmt"
func main() {
/* local variable definition */
var a int = 100
var b int = 200
var ret int
/* calling a function to get max value */
ret = max(a, b)
fmt.Printf( "Max value is : %d\n", ret )
}
/* function returning the max between two numbers */
func max(num1, num2 int) int {
/* local variable declaration */
var result int
if (num1 > num2) {
result = num1
} else {
result = num2
}
return result
}
Мы сохранили функцию max () вместе с функцией main () и скомпилировали исходный код. При запуске последнего исполняемого файла он даст следующий результат:
Max value is : 200
Возврат нескольких значений из функции
Функция Go может возвращать несколько значений. Например -
package main
import "fmt"
func swap(x, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("Mahesh", "Kumar")
fmt.Println(a, b)
}
Когда приведенный выше код компилируется и выполняется, он дает следующий результат:
Kumar Mahesh
Аргументы функции
Если функция должна использовать аргументы, она должна объявить переменные, которые принимают значения аргументов. Эти переменные называютсяformal parameters функции.
Формальные параметры ведут себя как другие локальные переменные внутри функции и создаются при входе в функцию и уничтожаются при выходе.
При вызове функции аргументы могут быть переданы в функцию двумя способами:
Старший Нет | Тип звонка и описание |
---|---|
1 | Звоните по цене Этот метод копирует фактическое значение аргумента в формальный параметр функции. В этом случае изменения, внесенные в параметр внутри функции, не влияют на аргумент. |
2 | Звоните по ссылке Этот метод копирует адрес аргумента в формальный параметр. Внутри функции адрес используется для доступа к фактическому аргументу, используемому в вызове. Это означает, что изменения, внесенные в параметр, влияют на аргумент. |
По умолчанию Go использует вызов по значению для передачи аргументов. В общем, это означает, что код внутри функции не может изменять аргументы, используемые для вызова функции. Вышеупомянутая программа при вызове функции max () использовала тот же метод.
Использование функции
Функцию можно использовать следующим образом:
Старший Нет | Использование и описание функции |
---|---|
1 | Функция как значение Функции можно создавать на лету и использовать в качестве значений. |
2 | Закрытие функций Замыкания функций являются анонимными функциями и могут использоваться в динамическом программировании. |
3 | Метод Методы - это специальные функции с приемником. |