Silex v0.47.1 / Docs Source canonique ↗

Définir et appeler une fonction

Une fonction nomme un comportement, déclare les valeurs qu'elle reçoit et indique le type qu'elle renvoie.

func add(left:int, right:int) int {
    return left + right
}

func main() {
    print(add(20, 22))
}

Le type placé après les paramètres est le type de retour. Omettez-le lorsque la fonction ne renvoie aucune valeur :

func greet(name:str) {
    print("Bonjour, ", name)
}

Étiqueter les arguments

Un appel peut suivre l'ordre des paramètres ou employer leurs noms comme étiquettes :

draw(hero, position)
draw(at:position, sprite:hero)
draw(hero, opacity:0.8, at:position)

Les arguments nommés peuvent apparaître dans n'importe quel ordre. Des arguments positionnels peuvent les précéder, mais aucun argument positionnel ne peut suivre le premier argument nommé. Chaque paramètre est fourni au plus une fois.

Après l'association des étiquettes, Silex évalue les expressions et les passe dans l'ordre de déclaration des paramètres. Les appels effectués à travers une valeur de fonction ou un callback restent toujours positionnels.

Le nom d'un paramètre public appartient donc à l'interface source : le renommer peut casser les appels nommés sans changer son type.

Retourner chaque chemin

func sign(value:int) str {
    if value < 0 {
        return "négatif"
    }
    return "positif"
}

Une fonction qui renvoie autre chose que void doit retourner une valeur ou terminer le programme sur chaque chemin atteignable.

Revenir aux fonctions · Proposer des valeurs par défaut