Documentation‎ > ‎Articles‎ > ‎

Fonction avec paramètre optionnel

publié le 3 juin 2011 à 19:22 par REBOL FRANCE   [ mis à jour : 11 juin 2011 à 08:10 ]

Pour tous ceux qui ont cherché à créer une fonction avec un paramètre optionnel, voici la solution :

my_function: func [my_parameter [string! unset!]] [
    either not value? 'my_parameter [
        print "my_function without parameter"
    ][
        print my_parameter
    ]
]

Et voici le résultat depuis la console REBOL !

>> my_function
my_function without parameter
>> my_function "Hello World!"
Hello World!

Il faut ajouter le mot clé unset! pour indiquer que le paramètre peut être omis.
Ensuite, dans votre fonction avant d'utiliser le paramètre, il faudra au préalable vérifier si ce dernier a bien été affecté.

Attention ! Si vous omettez le type volontairement, alors le type attendu du paramètre sera unset!
Donc, il faudra utiliser le type any-type! pour accepter n'importe quel type de données et un paramètre non défini.
Il existe un mot clé unset? qui permet de tester si une valeur a été affectée ou non. En réalité, cette fonction regarde si le mot est affecté à unset! 
Il est donc fortement recommandé d'utiliser value?

Nicolas

Comments