🧩 Les types nullables dans WINDEV : ce qu’il faut retenir
Depuis WINDEV 2024, il est possible d’activer dans les options de projet le support des types nullables. Une évolution attendue, qui modernise la gestion des données dans le WLangage.
âś… Pourquoi les types nullables ?
Historiquement, seuls les types complexes pouvaient ĂŞtre Null dans WINDEV.
Avec l’option « Autoriser les types nullables », les types simples (entier, chaîne, booléen…) peuvent désormais exprimer explicitement l’absence de valeur, ce qui rapproche WINDEV des standards actuels d’autres langages et des bases de données.
Exemple :
MonNombre est un entier?
MonTexte est une chaine?
Par défaut, une variable nullable non initialisée vaut Null, et non plus 0 ou "".
🎯 Les principaux apports
- Test direct du Null :
SI MonNombre = Null ALORS … - Opérateur
?.pour appeler une méthode ou une fonction si la variable n’est pas Null. - Sérialisation intelligente : un champ Null n’est pas sérialisé, et revient à Null à la désérialisation.
- Nouvelle fonction
TypeEstNullable()pour détecter si un type accepte le Null (utile pour les traitements génériques).
⚠️ Points de vigilance
- Une opération portant sur un Null renvoie souvent…
Null(arithmétique, concaténation, comparaison). - En HFSQL, vérifier que les rubriques acceptent réellement le Null (selon index, clés, contraintes).
- En API/JSON, documenter que champ absent = Null pour éviter les incompréhensions.
- Si vous migrez un ancien projet, attention aux conditions qui dépendaient de valeurs par défaut (0, "", etc.).
đź’ˇ Bonnes pratiques
- Déclarer nullable uniquement ce qui peut réellement manquer (dates optionnelles, commentaires, valeurs calculées…).
- Tester les
Nullavant tout calcul/affichage. - Ajouter des tests unitaires pour couvrir les cas « valeur absente ».
- Documenter en interne une convention simple : quand utiliser Null vs une valeur par défaut ?
🚀 En résumé
Les types nullables apportent à WINDEV une vraie souplesse et un modèle de données plus propre.
Nous les avons déjà adoptés dans vos nouveaux projets.
Avec quelques bonnes pratiques, cela rend le code plus clair, plus robuste et plus proche des standards actuels du développement.