Introduction
Le livre est la référence principale du langage de programmation Rust. Il fournit trois types de contenu :
- Des chapitres qui décrivent formellement chaque concept du langage et son utilisation.
- Des chapitres qui décrivent formellement le système de mémoire, le système de concurrence, les services à l'exécution, le système de liaison, et les outils de débogage.
- Des chapitres en annexes qui fournissent les justifications et les références aux langages qui ont influencé la conception de Rust.
Attention : ce livre est incomplet. Cela prend du temps de tout documenter. Consultez les tickets sur GitHub pour voir ce qui n'est pas encore documenté dans ce livre.
Ce que n'est pas La référence
Ce livre n'a pas vocation à présenter le langage. Il suppose que vous êtes suffisamment familier avec le langage. Un livre dédié à cette familiarisation est disponible séparément (disponible aussi en version anglaise).
Ce livre n'a pas non plus pour vocation de servir de référence à la bibliothèque standard livrée avec le langage. Cette bibliothèque est documentée séparément en extrayant les attributs de la documentation de son code source. De nombreuses fonctionnalités dont on pourrait s'attendre à ce qu'elles soient fournies par le langage sont en fait fournies par des bibliothèques en Rust, donc ce que vous cherchez se trouvera peut-être là-bas et non ici.
Pour les mêmes raisons, ce livre ne documente pas spécialement les
particularités liées aux outils rustc
ou Cargo. rust
a son propre
livre. Cargo a aussi un livre qui embarque aussi une
référence. Nous avons cependant certaines pages comme par
exemple les liaisons qui décrivent quand même un peu comment rustc
fonctionne.
Ce livre sert de référence uniquement à ce qui est disponible en Rust stable. Pour en savoir plus sur les fonctionnalités instables qui sont en cours de construction, consultez le Unstable Book.
Enfin, ce livre n'est pas une norme. Il peut expliquer des détails qui sont
spécifiques à rustc
, et ne doivent pas être mélangé avec les spécifications
du langage Rust. Nous avons l'intention d'écrire un livre dédié à cela un jour,
mais en attendant, cette présente référence est celle qui s'en approche le
plus.
Comment utiliser ce livre
Ce livre ne nécessite pas que vous le lisiez dans l'ordre. En général, chaque chapitre peut être lu de manière indépendante, mais peut s'entrecroiser avec d'autres chapitres à propos d'autres aspects du langage, mais qu'il ne traitera pas.
Il y a deux manières de lire ce document.
La première est pour répondre à une question précise. Si vous savez quel
chapitre répond à votre question, vous pouvez vous rendre à ce chapitre avec la
table des matières. Sinon, vous pouvez appuyer sur s
ou cliquer sur la loupe
dans la barre du haut pour rechercher des mots-clés en lien avec votre
question. Par exemple, imaginons que vous souhaitiez savoir quand une valeur
temporaire créée dans une instruction let
est libérée. Si vous ne savez
connaissez pas le chapitre durée de vie des éléments
temporaires qui est défini dans le chapitre des
expressions, vous pouvez alors chercher let temporaire
et le premier résultat devrait vous amener à cette section.
La seconde manière améliore votre connaissance générale sur des parties précises du langage. Dans ce cas, il vous suffit de parcourir la table des matières jusqu'à ce que vous voyez quelque chose d'intéressant, puis cliquez dessus pour commencer à lire. Et si vous découvrez des liens intéressants pendant votre lecture, n'hésitez pas à l'ouvrir.
Ceci étant dit, il n'y a pas de mauvaise manière de parcourir ce livre. Donc, lisez-le comme bon vous semble !
Les règles
Comme tout livre technique, ce livre suit certaines règles qui définissent comment présenter les informations. Cette partie décrit donc ici ces règles.
-
Les parties qui définissent un terme contiennent ce terme sont en italique. A chaque fois que ce terme est utilisé en dehors de la section qui la définit, il y aura généralement un lien vers cette définition.
Un exemple de terme est un exemple d'un terme qui est en train d'être défini.
-
Les différences entre les éditions du langage dans lesquelles la crate est compilée sont signalées dans des blocs de citation qui commencent par les mots "Différences entre les éditions :" en gras.
Différences entre les éditions : dans l'édition 2015, cette syntaxe est valide, alors qu'elle est interdite dans l'édition 2018.
-
Les remarques qui contiennent des informations importantes sur le statut de ce livre ou qui signalent des informations utiles mais souvent hors de la portée du livre sont placées dans des blocs de citation qui commencent par le mot "Remarque :" en gras.
Remarque : ceci est un exemple de remarque.
-
Les avertissements qui mettent en évidence un comportement dangereux ou ambigü du langage sont insérés dans des boites d'avertissement spéciales.
Avertissement : ceci est un exemple d'avertissement.
-
Les extraits de code insérés directement dans le texte sont placés dans des balises
<code>
.Les exemples de code plus conséquents sont placés dans des boites de code à coloration syntaxique afin de plus facilement copier, exécuter, et afficher les lignes via les contrôles dans le coin en haut à droite.
-
La grammaire et structure lexicale sont placés dans des blocs de citation avec en première ligne "Lexer" ou "Syntaxe" en exposant gras.
Syntaxe
ExempleDeGrammaire:
~
Expression
|box
ExpressionConsultez la page Annotation pour en savoir plus.
Contribuer
Nous sommes ouverts aux contributions de n'importe quel type.
Vous pouvez contribuer à ce livre en ouvrant un ticket ou envoyer une Pull
Request dans le dépôt de la référence Rust. Si
ce livre ne répond pas à votre question, que vous jugez que la réponse rentre
dans le cadre du livre, n'hésitez pas à ouvrir un ticket ou parlez-en dans les
canaux #docs
du Discord. Cela nous permet d'en savoir plus sur la manière
dont les gens utilisent ce livre pour prioriser l'optimisation de ces sections.
Si vous souhaitez contribuer à la traduction de ce livre en français, vous pouvez faire de même dans le dépôt GitHub rust-reference-fr.