Idź - funkcje

Funkcja to grupa instrukcji, które razem wykonują zadanie. Każdy program Go ma co najmniej jedną funkcję, czylimain(). Możesz podzielić swój kod na oddzielne funkcje. To, jak podzielisz swój kod na różne funkcje, zależy od Ciebie, ale logicznie rzecz biorąc, podział powinien być taki, aby każda funkcja wykonywała określone zadanie.

Funkcja declarationinformuje kompilator o nazwie funkcji, typie zwracanego i parametrach. Funkcjadefinition dostarcza rzeczywistą treść funkcji.

Biblioteka standardowa Go zawiera wiele wbudowanych funkcji, które program może wywołać. Na przykład functionlen()pobiera argumenty różnych typów i zwraca długość typu. Jeśli przekazano do niego ciąg, funkcja zwraca długość ciągu w bajtach. Jeśli przekazana zostanie tablica, funkcja zwraca długość tablicy.

Funkcje są również znane jako method, sub-routinelub procedure.

Definiowanie funkcji

Ogólna postać definicji funkcji w języku programowania Go jest następująca -

func function_name( [parameter list] ) [return_types]
{
   body of the function
}

Definicja funkcji w języku programowania Go składa się z nagłówka funkcji i treści funkcji . Oto wszystkie części funkcji -

  • Func - Rozpoczyna deklarację funkcji.

  • Function Name- To jest właściwa nazwa funkcji. Nazwa funkcji i lista parametrów razem tworzą podpis funkcji.

  • Parameters- Parametr działa jak symbol zastępczy. Gdy funkcja jest wywoływana, przekazujesz wartość do parametru. Ta wartość jest określana jako rzeczywisty parametr lub argument. Lista parametrów odnosi się do typu, kolejności i liczby parametrów funkcji. Parametry są opcjonalne; to znaczy, funkcja może nie zawierać żadnych parametrów.

  • Return Type- Funkcja może zwrócić listę wartości. Return_types to lista typów danych wartości zwracanych przez funkcję. Niektóre funkcje wykonują żądane operacje bez zwracania wartości. W tym przypadku parametr return_type nie jest wymagany.

  • Function Body - Zawiera zbiór instrukcji, które określają, co robi funkcja.

Przykład

Poniższy kod źródłowy przedstawia funkcję o nazwie max(). Ta funkcja przyjmuje dwa parametry num1 i num2 i zwraca maksimum między dwoma -

/* 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 
}

Wywołanie funkcji

Tworząc funkcję Go, podajesz definicję tego, co funkcja ma robić. Aby użyć funkcji, będziesz musiał wywołać tę funkcję, aby wykonać określone zadanie.

Kiedy program wywołuje funkcję, sterowanie programem jest przekazywane do wywoływanej funkcji. Wywołana funkcja wykonuje zdefiniowane zadanie i po wykonaniu instrukcji return lub po osiągnięciu zamykającego nawiasu zamykającego funkcję zwraca sterowanie programem z powrotem do programu głównego.

Aby wywołać funkcję, wystarczy przekazać wymagane parametry wraz z nazwą funkcji. Jeśli funkcja zwraca wartość, możesz zapisać zwróconą wartość. Na przykład -

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 
}

Zachowaliśmy funkcję max () razem z funkcją main () i skompilowaliśmy kod źródłowy. Podczas uruchamiania końcowego pliku wykonywalnego dałoby to następujący wynik -

Max value is : 200

Zwracanie wielu wartości z funkcji

Funkcja Go może zwracać wiele wartości. Na przykład -

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)
}

Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -

Kumar Mahesh

Argumenty funkcji

Jeśli funkcja ma używać argumentów, musi zadeklarować zmienne, które akceptują wartości argumentów. Te zmienne nazywane sąformal parameters funkcji.

Parametry formalne zachowują się jak inne zmienne lokalne wewnątrz funkcji i są tworzone po wejściu do funkcji i niszczone po zakończeniu.

Podczas wywoływania funkcji istnieją dwa sposoby przekazywania argumentów do funkcji -

Sr.No Typ i opis połączenia
1 Zadzwoń według wartości

Ta metoda kopiuje rzeczywistą wartość argumentu do parametru formalnego funkcji. W tym przypadku zmiany wprowadzone w parametrze wewnątrz funkcji nie mają wpływu na argument.

2 Zadzwoń przez odniesienie

Ta metoda kopiuje adres argumentu do parametru formalnego. Wewnątrz funkcji adres służy do uzyskania dostępu do faktycznego argumentu użytego w wywołaniu. Oznacza to, że zmiany wprowadzone w parametrze wpływają na argument.

Domyślnie Go używa wywołania według wartości do przekazywania argumentów. Ogólnie oznacza to, że kod funkcji nie może zmieniać argumentów używanych do wywołania funkcji. Powyższy program, wywołując funkcję max (), użył tej samej metody.

Wykorzystanie funkcji

Funkcji można używać na następujące sposoby:

Sr.No Zastosowanie i opis funkcji
1 Funkcja jako wartość

Funkcje można tworzyć w locie i używać ich jako wartości.

2 Zamknięcia funkcji

Zamknięcia funkcji są funkcjami anonimowymi i mogą być używane w programowaniu dynamicznym.

3 metoda

Metody to specjalne funkcje z odbiornikiem.