Créer un module TON618 — guide complet

#1. Où vivent les modules

IMPORT://nom cherche nom.ton à deux endroits, dans l'ordre :

  1. Le même dossier que le script qui l'importe.
  2. Un sous-dossier modules/ à côté de ce script.

Un projet peut donc garder des aides ponctuelles à côté du script, et du code partagé sous modules/.

#2. Ce qu'un module peut déclarer

Un fichier module est un fichier .ton normal : il peut déclarer des variables et des fonctions (ton.function), et tout ce qu'il déclare devient disponible dans le scope global du script qui l'importe, une fois importé. Un module n'est pas un espace de noms séparé — il n'y a pas de syntaxe mathutils.add(...) ; tu appelles add(...) directement (voir la convention de nommage ci-dessous).

#3. Un exemple concret

modules/greetings.ton :

ton.function greetings_hello(nom) {
    return "Bonjour, " + nom + " !"
}

ton.function greetings_bye(nom) {
    return "Au revoir, " + nom + "."
}

Utilisation :

IMPORT://greetings

print(greetings_hello("kuro"))
print(greetings_bye("kuro"))

#4. Bonnes pratiques pour écrire un module

  • Préfixe chaque fonction avec le nom du module lui-même (greetings_hello, pas hello) — puisque l'importation aplatit tout dans un seul scope global, c'est la seule chose empêchant deux modules (ou un module et le script principal) de silencieusement écraser les fonctions l'un de l'autre.
  • Garde un module centré sur une seule responsabilité ; compose plusieurs petits modules plutôt qu'un seul gros.
  • Un module n'est exécuté que la première fois qu'il est importé — importer le même nom deux fois (depuis n'importe où) ne fait rien la seconde fois, donc il est sûr que deux modules différents importent tous les deux un troisième dont ils dépendent tous les deux.

Modifier cette page sur GitHub