Passaggio di Array alle Funzioni
Una caratteristica utile è la possibilità di passare array come argomenti alle funzioni, consentendo l'utilizzo di questi array in altri ambiti, specialmente quando sono dichiarati localmente.
La sintassi generale per un argomento array in una funzione è la seguente:
argName [expectedArraySize] dataType
L'implementazione di questo in una funzione apparirà simile al seguente esempio:
index.go
123func myFunc(arr [5] int) { // code here }
Il seguente esempio mostra come passare un array a una funzione e utilizzarlo:
index.go
123456789101112131415package main import "fmt" func sumOfAll(arr [10] int) int { total := 0 for i := 0; i < 10; i++ { total += arr[i] } return total } func main() { var numbers = [10] int { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 } fmt.Printf("Sum: %d", sumOfAll(numbers)) }
In Go (Golang), gli array vengono sempre passati per valore alle funzioni. Ciò significa che, quando si passa un array a una funzione, viene creata una copia locale dell'array originale all'interno della funzione. Di conseguenza, eventuali modifiche apportate all'array all'interno della funzione non influenzeranno l'array originale, poiché i dati a cui si accede nella funzione sono una copia dell'array originale.
Il seguente programma illustra che le modifiche apportate all'array all'interno della funzione non influenzano l'array originale:
index.go
12345678910111213package main import "fmt" func myFunc(nums [3] int) { nums[1] = 10 } func main() { var values = [3] int {1, 2, 3} fmt.Println("Before:", values) myFunc(values) fmt.Println("After: ", values) }
Nota
In contrasto al passaggio per valore, esiste il concetto di passaggio per riferimento, dove un riferimento all'array o alla variabile viene passato alla funzione. Di conseguenza, modificare il valore all'interno della funzione modifica anche la sorgente. In alcuni linguaggi di programmazione, gli array vengono passati per riferimento di default.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Awesome!
Completion rate improved to 1.96
Passaggio di Array alle Funzioni
Scorri per mostrare il menu
Una caratteristica utile è la possibilità di passare array come argomenti alle funzioni, consentendo l'utilizzo di questi array in altri ambiti, specialmente quando sono dichiarati localmente.
La sintassi generale per un argomento array in una funzione è la seguente:
argName [expectedArraySize] dataType
L'implementazione di questo in una funzione apparirà simile al seguente esempio:
index.go
123func myFunc(arr [5] int) { // code here }
Il seguente esempio mostra come passare un array a una funzione e utilizzarlo:
index.go
123456789101112131415package main import "fmt" func sumOfAll(arr [10] int) int { total := 0 for i := 0; i < 10; i++ { total += arr[i] } return total } func main() { var numbers = [10] int { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 } fmt.Printf("Sum: %d", sumOfAll(numbers)) }
In Go (Golang), gli array vengono sempre passati per valore alle funzioni. Ciò significa che, quando si passa un array a una funzione, viene creata una copia locale dell'array originale all'interno della funzione. Di conseguenza, eventuali modifiche apportate all'array all'interno della funzione non influenzeranno l'array originale, poiché i dati a cui si accede nella funzione sono una copia dell'array originale.
Il seguente programma illustra che le modifiche apportate all'array all'interno della funzione non influenzano l'array originale:
index.go
12345678910111213package main import "fmt" func myFunc(nums [3] int) { nums[1] = 10 } func main() { var values = [3] int {1, 2, 3} fmt.Println("Before:", values) myFunc(values) fmt.Println("After: ", values) }
Nota
In contrasto al passaggio per valore, esiste il concetto di passaggio per riferimento, dove un riferimento all'array o alla variabile viene passato alla funzione. Di conseguenza, modificare il valore all'interno della funzione modifica anche la sorgente. In alcuni linguaggi di programmazione, gli array vengono passati per riferimento di default.
Grazie per i tuoi commenti!