Pour aller plus loin
Tout d'abord terminons-en avec les fonctionnalités de Neon.
Le mot-clé import :
Souvent, lorsque vous écrivez de gros programmes de plusieurs milliers de lignes, vous avez envie de diviser tout votre programme en plusieurs fichiers pour mieux vous y retrouver. Je vais vous montrer comment c'est possible en Neon.
Imaginons que vous avez deux fichiers : module.ne et main.ne, et que vous voulez définir des fonctions dans module.ne et les utiliser dans main.ne. D'abord, écrivez quelque chose ressemblant à ceci dans module.ne :
# fichier de module
function f(x) {
return ( x**2 + 7*x - 2 )
}
afficher = print # on crée une copie de print qui s'appelle afficher
print("Le fichier a bien ete execute")
Maintenant, écrivez dans main.ne :
# fichier principal
import ("module")
nombre = 25
nombre2 = f(nombre)
afficher(nombre2)
De cette manière import peut être utilisé avec un nombre illimité de modules :
import("module", "fichier", "truc", "machin") # il ne faut pas oublier que les fichiers de module doivent avoir comme extension .ne, et que vous ne devez pas l'écrire dans le import
Arguments du programme :
Quand on exécute des programmes dans une console/un terminal, on a la possibilité de leur envoyer des arguments. Par exemple, pour exécuter un fichier Neon, on peut taper dans la console :
neon programme.ne
neon (ou neon.exe) est le nom du fichier exécutable, et tous les mots séparés par des espaces sont les arguments envoyés au programme. Dans notre cas, il n'y a qu'un argument envoyé : c'est le nom du fichier programme.ne.
Quand on double-clique sur un fichier en général et qu'il s'ouvre avec le logiciel approprié (par exemple un fichier LibreOffice), c'est parce que :
1- Windows se souvient que les fichiers dont le nom finit par .odt doivent être ouverts avec LibreOffice
2- Windows envoie en argument au programme swriter.exe (l'exécutable principal de LibreOffice) le nom du fichier sur lequel vous avez double-cliqué. Ainsi, LibreOffice va ouvrir votre fichier et l'afficher.
Vous avez donc vu que pour plein de raisons il est intéressant de pouvoir envoyer des arguments à des programmes. Je vais vous montrer comment on envoie des arguments à des programmes Neon (en ligne de commande).
Pour envoyer les arguments, rien de plus simple, vous écrivez d'abord la ligne de commande comme si vous vouliez juste exécuter votre programme Neon : neon programme.ne
Puis directement après, ajoutez les arguments que vous voulez envoyer à votre programme Neon ; ça donne donc :
neon programme.ne arg1 arg2 ... argn
C'est bien beau tout ça, mais comment puis-je accéder aux arguments depuis le programme ??
Pour ça, rien de plus simple : Lorsque vous exécutez un fichier Neon, une liste contenant tous les arguments est automatiquement créée. Vous pouvez y accéder sous le nom _ _args_ _ : deux tirets du bas à chaque fois, sans espace bien sûr.
Exemple :
main.c :
print(__args__)
Le référencement/déréférencement :
Je vais maintenant vous présenter une notion très utile, mais assez spécifique, qui va vous donner davantage de liberté dans vos programmes.
Les mots référencement/déréférencement viennent tout droit du C et même s'ils n'expriment pas rigoureusement la même chose en Neon qu'en C, l'idée est la même.
Référencer une variable, en Neon, consiste tout simplement à récupérer son nom dans une chaine de caractères. Le référencement se fait avec l'opérateur & :
Le déréférencement quant à lui est l'opération contraire du référencement. A partir d'une chaine de caractère représentant une variable, on récupère la valeur de la variable. L'opérateur de déréférencement est l'opérateur ':'
Pour finir il manque un dernier opérateur : l'opérateur qui permet d'affecter une valeur à une variable, mais en connaissant uniquement le nom de la variable. Pour cela, on va utiliser l'opérateur '->' :
Et on peut tout de suite faire des choses intéressantes :