Si je comprends, le langage ne contient pas de Null
Oui c'est l'idée, après je ne suis pas allé dans le détail, mais comme V permet de travailler avec des bibliothèques C sans couche d'interopérabilité, la notion de nil est présente dans le langage, mais a utilisé avec précaution.
Il est aussi possible de déclarer des champs de structure avec comme valeur par défaut 0 soit un pointeur null...
J'ai un peu du mal à comprendre pourquoi un des cas doit être marqué unsafe et l'autre non.
Personnellement, je n'aime vraiment pas cette notion de unsafe dans V, tout comme je ne l'apprécie pas dans Rust. Je préfère de loin l'approche de Zig sur ce point.
Comme je le dis dans la dépêche, V cherche à faire un grand écart entre facilité d'utilisation, typage fort, rapidité et lien direct avec le C. Forcément, certains compromis doivent être fait, la notion de unsafe en est un.
et passe par un type ['a] Optionnal
Oui, c'est peut-être mieux détaillé dans cette partie du guide (voir l'exemple à la fin).
Donc pas de pattern matching pour gérer les Optional mais soit via or, soit via un if/else comme décrit dans cette doc.
[^] # Re: Merci pour cette description détaillée !
Posté par Andréas Livet . En réponse à la dépêche À la découverte du langage V. Évalué à 3. Dernière modification le 16 septembre 2024 à 20:22.
Oui c'est l'idée, après je ne suis pas allé dans le détail, mais comme V permet de travailler avec des bibliothèques C sans couche d'interopérabilité, la notion de
nilest présente dans le langage, mais a utilisé avec précaution.Il est aussi possible de déclarer des champs de structure avec comme valeur par défaut 0 soit un pointeur
null...J'ai un peu du mal à comprendre pourquoi un des cas doit être marqué
unsafeet l'autre non.Personnellement, je n'aime vraiment pas cette notion de
unsafedans V, tout comme je ne l'apprécie pas dans Rust. Je préfère de loin l'approche de Zig sur ce point.Comme je le dis dans la dépêche, V cherche à faire un grand écart entre facilité d'utilisation, typage fort, rapidité et lien direct avec le C. Forcément, certains compromis doivent être fait, la notion de
unsafeen est un.Oui, c'est peut-être mieux détaillé dans cette partie du guide (voir l'exemple à la fin).
Donc pas de pattern matching pour gérer les
Optionalmais soit viaor, soit via unif/elsecomme décrit dans cette doc.Exemple :