Logo marque du langage Go

Série : Langage GO – Les fonctions

Présentation de la notion de fonction avec ou sans paramètres d’entrées et ou de sorties.

Définition

Comme dans presque tout les langages, il existe un moyen d’encapsuler un ensemble d’instructions qui effectue un traitement spécifique, c’est le principe de la boite noire, avec un ensemble de paramètres en entrée et un résultat en sortie. Avec les fonctions on s’abstrait du détail de l’implémentation. Il pourrait être écrit par une autre personne par exemple.

On a utilisé aussi le terme de routine.

Les fonctions permettent aussi de scinder et d’identifier les différents traitements.

Syntaxe

func <FunctionName>(<Param1> type, <Param2> type, ...) <TypeRetour> {

	// Implémentation
	
}

Exemple

L’exemple le plus flagrant est la fonction main de tout programme GO pour le point d’entrée.

package main

import (
	"fmt"
)

func main() {

	var resultat int = 1

	var monTexte string = "Resultat: " + resultat

	fmt.Printf("%vn", monTexte)

}

Important : En ce qui concerne la visibilité d’une fonction, en ce sens on parle public ou privée. Il suffit pour cela de soit mettre la première lettre en minuscule pour une fonction privée et une majuscule pour une fonction publique.

Appel de fonction

C’est bien beau d’avoir déclarer une fonction encore faut-il faire appel à ses services. L’exemple ci-après est volontairement détaillé. Cette fonction prend un paramètre en entrée et renvoie un paramètre en sortie.

package main

import "fmt"

func main() {

	var name string = "John Doe"

	messageForYou := message(name)

	fmt.Println(messageForYou)
}

func message(nom string) string {
	return fmt.Sprintf("Hello dear %s.", nom)
}
messageForYou := message(name)

En résumé

Voilà maintenant vous savez :

  • Déclarer des fonctions avec des paramètres d’entrée et/ou des paramètres de sorties ;
  • Changer le scope de la fonction en privée ou publique qui sera fortement utile lors de l’écriture des packages par exemple ;
  • Faire l’appel a cette fonction et récupérer son résultat.

A lire aussi …

Frédéric Schmidt

Lead Technical Architect.

Ajouer un commentaire

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Recent Comments

    %d blogueurs aiment cette page :