Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Passaggio di Array alle Funzioni | Array e Slice
Introduzione a Golang

bookPassaggio 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

index.go

copy
123
func myFunc(arr [5] int) { // code here }

Il seguente esempio mostra come passare un array a una funzione e utilizzarlo:

index.go

index.go

copy
123456789101112131415
package 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

index.go

copy
12345678910111213
package 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.

question mark

Qual è il codice appropriato per il parametro della funzione myFunc:

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 5. Capitolo 8

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 1.96

bookPassaggio 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

index.go

copy
123
func myFunc(arr [5] int) { // code here }

Il seguente esempio mostra come passare un array a una funzione e utilizzarlo:

index.go

index.go

copy
123456789101112131415
package 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

index.go

copy
12345678910111213
package 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.

question mark

Qual è il codice appropriato per il parametro della funzione myFunc:

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 5. Capitolo 8
some-alt