Les commentaires
Tous les développeurs s’efforcent de rendre leur code facile à comprendre, mais parfois il est nécessaire d’écrire des explications supplémentaires. Dans ce cas, les développeurs laissent des commentaires dans leur code source que le compilateur va ignorer mais qui peuvent être utiles pour les personnes qui lisent le code source.
Voici un simple commentaire :
#![allow(unused)]
fn main() {
// hello, world
}
Avec Rust, les commentaires classiques commencent avec deux barres obliques et continuent jusqu’à la fin de la ligne. Pour les commentaires qui font plus d’une seule ligne, vous pouvez ajouter // au début de chaque ligne, comme ceci :
#![allow(unused)]
fn main() {
// Donc ici on fait quelque chose de compliqué, tellement long que nous avons
// besoin de plusieurs lignes de commentaires pour le faire ! Heureusement,
// ce commentaire va expliquer ce qui se passe.
}
Les commentaires peuvent aussi être aussi ajoutés à la fin d’une ligne qui contient du code :
Fichier : src/main.rs
fn main() {
let nombre_chanceux = 7; // Je me sens chanceux aujourd'hui
}
Mais le plus souvent, vous les verrez utilisés de cette manière, avec le commentaire sur une ligne séparée au-dessus du code qu’il annote :
Fichier : src/main.rs
fn main() {
// Je me sens chanceux aujourd'hui
let nombre_chanceux = 7;
}
Pour les commentaires qui font plusieurs lignes, Rust offre également la même syntaxe que les commentaires du langage C, en encadrant les commentaires par ` /*` et `*/`, comme dans l'exemple suivant :
#![allow(unused)]
fn main() {
/*
Donc ici on fait quelque chose de compliqué, tellement long que nous avons
besoin de plusieurs lignes de commentaires pour le faire ! Heureusement,
ce commentaire va expliquer ce qui se passe.
*/
}
Une caractéristique intéressante est que Rust permet l’imbrication de ce type de commentaires : cela s’avère particulièrement utile durant la phase de débogage du code, car cela permet d’“annuler” temporairement des portions de code qui peuvent elles-même comporter des commentaires imbriqués, comme dans l’exemple suivant : voici un code manifestement problématique, qui ne compile pas :
fn main() {
let nombre_chanceux = 7;
/*
Incrémentation du nombre chanceux :
*/
nombre_chanceux = nombre_chanceux + 2;
println!("Mon nombre chanceux est {nombre_chanceux}");
}
Et voici le même code, avec une partie commentée, ce qui permet la compilation :
fn main() {
let nombre_chanceux = 7;
/* Neutralisation du code ne fonctionnant pas :
/*
Incrémentation du nombre chanceux :
*/
nombre_chanceux = nombre_chanceux + 2;
*/
println!("Mon nombre chanceux est {nombre_chanceux}");
}
Notez l’imbrication des commentaires, par rapport au fonctionnement des commentaires en C.
Enfin, Rust a aussi un autre type de commentaire, les commentaires de documentation, que nous aborderons dans la partie ["Publier une crate sur crates.io"](ch14-02-publishing-to-crates-io.html) du chapitre 14.