Euphoria - Fonctions

Les fonctions Euphoria sont comme des procédures, mais elles renvoient une valeur et peuvent être utilisées dans une expression. Ce chapitre explique comment écrire vos propres fonctions dans Euphoria.

Définition de fonction

Avant d'utiliser une fonction, nous devons la définir. La manière la plus courante de définir une fonction dans Euphoria est d'utiliser lefunction mot-clé, suivi d'un nom de fonction unique, d'une liste de paramètres (qui peuvent être vides) et d'un bloc d'instructions qui se termine par end functiondéclaration. La syntaxe de base est présentée ici -

function functionname(parameter-list)

   statements
   ..........
   return [Euphoria Object]

end function

Exemple

Une fonction simple appelée sayHello qui ne prend aucun paramètre est définie ici -

function sayHello()
   puts(1, "Hello there")
   return 1
end function

Appeler une fonction

Pour appeler une fonction quelque part plus tard dans le script, vous auriez simplement besoin d'écrire le nom de cette fonction comme suit -

#!/home/euphoria-4.0b2/bin/eui

function sayHello()
   puts(1, "Hello there")
   return 1
end function

-- Call above defined function.
sayHello()

Cela produit le résultat suivant -

Hello there

Paramètres de fonction

Jusqu'à présent, nous avons vu la fonction sans paramètres. Mais il existe une possibilité de passer différents paramètres lors de l'appel d'une fonction. Ces paramètres passés peuvent être capturés dans la fonction et toute manipulation peut être effectuée sur ces paramètres.

Une fonction peut prendre plusieurs paramètres séparés par une virgule.

Exemple

Faisons une petite modification dans notre fonction sayHello . Cette fois, il faut deux paramètres -

#!/home/euphoria-4.0b2/bin/eui

function sayHello(sequence name,atom  age)
   printf(1, "%s is %d years old.", {name, age})
   return 1
end function

-- Call above defined function.
sayHello("zara", 8)

Cela produit le résultat suivant -

zara is 8 years old.

La déclaration de retour

Une fonction Euphoria doit avoir une instruction return avant l'instruction de fermetureend function. Tout objet Euphoria peut être retourné. Vous pouvez, en effet, avoir plusieurs valeurs de retour, en renvoyant une séquence d'objets. Par exemple

return {x_pos, y_pos}

Si vous n'avez rien à renvoyer, renvoyez simplement 1 ou 0. La valeur de retour 1 indique le succès et 0 indique l'échec