Les subroutines a des avantages et des défauts tout comme les fonctions.
Avantages des subroutines :
- Plus simple pour les débutants.
- Peuvent être déclarés avant leurs utilisations.
- Peuvent être utilisés comme des événements (peut aussi se faire en fonction mais ça sera complexe pour les utilisateurs).
Défauts des subroutines :
- Ne peuvent pas renvoyer de valeur.
- Pour invoquer des subroutines avec des listes en paramètres, c'est pas évident. Faut d'abord récupérer la taille de la liste, puis ensuite récupérer la liste en question :
command /messageop <text>:
trigger:
set {_operators::*} to players where [player input is op]
invoke "message op" from player, arg, size of {_operators::*} and {_operators::*}
sub "message op":
loop integers between 4 and parameter 3:
add parameter loop-integer to {_operators::*}
send "[Chat des opérateurs] %parameter 1% : %parameter 2%" to {_operators::*}
Avantages des fonctions :
- Peuvent renvoyer des valeurs.
- Peuvent prendre des listes en paramètres facilement.
Défauts des fonctions :
- Doivent être déclarées avant leurs utilisations.
- Elles ne marcheront pas si elles ont paramètres null. Exemple :
function test(text: text) :: boolean:
broadcast {_text}
return true
command /test:
trigger:
set {_test} to test({_variable})
send "%{_test}%"
Comme la variable {_variable} n'existe pas, au lieu que la fonction renvoie true, elle renverra <none>.