Functies zijn in Go blokken code die specifieke taken uitvoeren. Deze kunnen in het programma opnieuw worden gebruikt om geheugen te besparen, de leesbaarheid te verbeteren en tijd te besparen. Golang -functies kunnen wel of geen waarde retourneren naar de aanroeper.

Dingen die u moet weten over functies in Golang
Bijvoorbeeld:
package main
import "fmt"
// multiply() nhân 2 số nguyên và trả về kết quả
func multiply(a, b int) int {
return a * b
}
func main() {
result := multiply(5, 10)
fmt.Printf("multiplication: %d", result)
}
Resultaat:
multiplication: 50
Functiesyntaxis in Golang
func function_name(Parameter-list)(Return_type) {
// function body...
}
Functiedeclaratie
In Go wordt een functie gedeclareerd met het trefwoord func, gevolgd door een naam, parameters en optioneel retourtype.
Syntaxis
func function_name(Parameter-list)(Return_type) {
// function body...
}
Voorbeeld van een vermenigvuldigingsfunctie
func multiply(a, b int) int {
return a * b
}
func: Trefwoord om een functie te declareren.
function_name: De naam van de functie, bijvoorbeeld vermenigvuldigen.
Parameterlijst: a, b int: de parameters en hun typen.
Return_type: int specificeert het retourtype.
Functie aanroepen
Om een functie te gebruiken, roept u de functie eenvoudig aan met de naam en eventuele argumenten. Hier roept multiply(5, 10) de functie aan met 5 en 10 als argumenten.
Bijvoorbeeld
result := multiply(5, 10)
fmt.Printf("Result of multiplication: %d", result)
Functieargumenten
Go ondersteunt twee manieren om parameters aan functies door te geven: Call by value en Call by reference. Go gebruikt standaard 'call by value', wat betekent dat waarden worden gekopieerd en wijzigingen binnen de functie geen invloed hebben op de variabelen van de aanroeper.
Oproep op waarde
Bij een call by value worden de waarden van de argumenten gekopieerd naar de functie parameters. Wijzigingen in de functie hebben dus geen invloed op de oorspronkelijke variabelen.
Bijvoorbeeld:
package main
import "fmt"
func multiply(a, b int) int {
a = a * 2 // chỉnh sửa bên trong hàm này
return a * b
}
func main() {
x := 5
y := 10
fmt.Printf("Before: x = %d, y = %d\n", x, y)
result := multiply(x, y)
fmt.Printf("multiplication: %d\n", result)
fmt.Printf("After: x = %d, y = %d\n", x, y)
}
Resultaat:
Before: x = 5, y = 10
multiplication: 100
After: x = 5, y = 10
Oproep via referentie
Bij call-by-reference worden pointers gebruikt zodat wijzigingen binnen de functie worden weerspiegeld in de variabelen van de aanroeper.
Bijvoorbeeld:
package main
import "fmt"
func multiply(a, b *int) int {
*a = *a * 2 // chỉnh sửa giá trị của a ở địa chỉ bộ nhớ của nó
return *a * *b
}
func main() {
x := 5
y := 10
fmt.Printf("Before: x = %d, y = %d\n", x, y)
result := multiply(&x, &y)
fmt.Printf("multiplication: %d\n", result)
fmt.Printf("After: x = %d, y = %d\n", x, y)
}
Resultaat
Before: x = 5, y = 10
multiplication: 100
After: x = 10, y = 10