In Go, le funzioni sono blocchi di codice che eseguono attività specifiche e possono essere riutilizzati nel programma per risparmiare memoria, migliorare la leggibilità e risparmiare tempo. Le funzioni Golang possono restituire o meno un valore al chiamante.

Cose da sapere sulle funzioni in Golang
Per esempio:
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)
}
Risultato:
multiplication: 50
Sintassi delle funzioni in Golang
func function_name(Parameter-list)(Return_type) {
// function body...
}
Dichiarazione di funzione
In Go, una funzione viene dichiarata con la parola chiave func, seguita da un nome, parametri e un tipo di ritorno facoltativo.
Sintassi
func function_name(Parameter-list)(Return_type) {
// function body...
}
Esempio di funzione moltiplicazione
func multiply(a, b int) int {
return a * b
}
func: parola chiave per dichiarare una funzione.
function_name: Il nome della funzione, ad esempio moltiplicare.
Elenco parametri: a, b int: i parametri insieme ai loro tipi.
Return_type: int specifica il tipo di ritorno.
Funzione di chiamata
Per utilizzare una funzione, è sufficiente chiamarla con il suo nome e con tutti gli argomenti necessari. Qui, multiply(5, 10) chiama la funzione con 5 e 10 come argomenti.
Per esempio
result := multiply(5, 10)
fmt.Printf("Result of multiplication: %d", result)
Argomenti della funzione
Go supporta due modi per passare parametri alle funzioni: chiamata per valore e chiamata per riferimento. Di default, Go utilizza la chiamata per valore, il che significa che i valori vengono copiati e le modifiche all'interno della funzione non influiscono sulle variabili del chiamante.
Chiama per valore
Nella chiamata per valore, i valori degli argomenti vengono copiati nei parametri della funzione, quindi le modifiche nella funzione non influiscono sulle variabili originali.
Per esempio:
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)
}
Risultato:
Before: x = 5, y = 10
multiplication: 100
After: x = 5, y = 10
Chiamata per riferimento
Nella chiamata per riferimento, i puntatori vengono utilizzati in modo che le modifiche all'interno della funzione vengano riflesse nelle variabili del chiamante.
Per esempio:
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)
}
Risultato
Before: x = 5, y = 10
multiplication: 100
After: x = 10, y = 10