Aller - Passer des tableaux aux fonctions

Si vous souhaitez passer un tableau à une seule dimension en tant qu'argument dans une fonction, vous devez déclarer le paramètre formel de la fonction de l'une des deux manières suivantes et les deux méthodes de déclaration produisent des résultats similaires car chacune indique au compilateur qu'un tableau d'entiers va être reçu. De la même manière, vous pouvez passer un tableau multidimensionnel en tant que paramètres formels.

Voie-1

Paramètres formels sous forme de tableau dimensionné comme suit -

void myFunction(param [10]int)
{
.
.
.
}

Voie-2

Paramètres formels sous forme de tableau non dimensionné comme suit -

void myFunction(param []int)
{
.
.
.
}

Exemple

Maintenant, considérons la fonction suivante, qui prendra un tableau comme argument avec un autre argument et en fonction des arguments passés, elle retournera la moyenne des nombres passés à travers le tableau comme suit -

func getAverage(arr []int, int size) float32 {
   var i int
   var avg, sum float32  

   for i = 0; i < size; ++i {
      sum += arr[i]
   }

   avg = sum / size
   return avg;
}

Maintenant, appelons la fonction ci-dessus comme suit -

package main

import "fmt"

func main() {
   /* an int array with 5 elements */
   var  balance = []int {1000, 2, 3, 17, 50}
   var avg float32

   /* pass array as an argument */
   avg = getAverage( balance, 5 ) ;

   /* output the returned value */
   fmt.Printf( "Average value is: %f ", avg );
}
func getAverage(arr []int, size int) float32 {
   var i,sum int
   var avg float32  

   for i = 0; i < size;i++ {
      sum += arr[i]
   }

   avg = float32(sum / size)
   return avg;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Average value is: 214.400000

Comme vous pouvez le voir, la longueur du tableau n'a pas d'importance en ce qui concerne la fonction car Go n'effectue aucune vérification de limites pour les paramètres formels.