diff --git a/FRENCH/src/SUMMARY.md b/FRENCH/src/SUMMARY.md index bef352223c..a08b1f10e1 100644 --- a/FRENCH/src/SUMMARY.md +++ b/FRENCH/src/SUMMARY.md @@ -49,3 +49,5 @@ - [Les collections standard](ch08-00-common-collections.md) - [Stocker des listes de valeurs avec des vecteurs](ch08-01-vectors.md) - [Stocker du texte encodé en UTF-8 avec les Strings](ch08-02-strings.md) + + - [B - les opérateurs et les symboles](appendix-02-operators.md) diff --git a/FRENCH/src/appendix-02-operators.md b/FRENCH/src/appendix-02-operators.md new file mode 100644 index 0000000000..9167f6bf63 --- /dev/null +++ b/FRENCH/src/appendix-02-operators.md @@ -0,0 +1,484 @@ + + +## Annexe B : les opérateurs et les symboles + + + +Cette annexe contient un glossaire d'éléments de syntaxe de Rust, notamment les +opérateurs et les autres symboles qui s'utilisent tout seuls ou dans le cadre de +chemins, de génériques, de traits liés, de macros, d'attributs, de commentaires, +de tuples, de crochets ou d'accolades. + + + +### Opérateurs + + + +Le tableau B-1 liste les opérateurs de Rust en indiquant pour chacun un exemple +d'utilisation en situation, une petite explication, et si cet opérateur est +surchargeable. Si un opérateur est surchargeable, le trait qu'il faut utiliser +pour la surcharge est indiqué. + + + +Tableau B-1 : les opérateurs + + + +| Opérateur | Exemple | Explication | Surchargeable ? | +|-----------|---------|-------------|-----------------| +| `!` | `ident!(...)`, `ident!{...}`, `ident![...]` | Identificateur de macro | | +| `!` | `!expr` | Négation binaire ou logique | `Not` | +| `!=` | `var != expr` | Comparaison de non-égalité | `PartialEq` | +| `%` | `expr % expr` | Modulo arithmétique | `Rem` | +| `%=` | `var %= expr` | Modulo arithmétique et assignation | `RemAssign` | +| `&` | `&expr`, `&mut expr` | Emprunt | | +| `&` | `&type`, `&mut type`, `&'a type`, `&'a mut type` | Type de pointeur emprunté | | +| `&` | `expr & expr` | ET binaire | `BitAnd` | +| `&=` | `var &= expr` | ET binaire et assignation | `BitAndAssign` | +| `&&` | `expr && expr` | ET logique | | +| `*` | `expr * expr` | Multiplication arithmétique | `Mul` | +| `*=` | `var *= expr` | Multiplication arithmétique et assignation | `MulAssign` | +| `*` | `*expr` | Déréférencement | | +| `*` | `*const type`, `*mut type` | Pointeur brut | | +| `+` | `trait + trait`, `'a + trait` | Contrainte de type composé | | +| `+` | `expr + expr` | Addition arithmétique | `Add` | +| `+=` | `var += expr` | Addition arithmétique et assignation | `AddAssign` | +| `,` | `expr, expr` | Séparateur d'arguments et d'éléments | | +| `-` | `- expr` | Négation arithmétique | `Neg` | +| `-` | `expr - expr` | Soustraction arithmétique | `Sub` | +| `-=` | `var -= expr` | Soustraction arithmétique et assignation | `SubAssign` | +| `->` | `fn(...) -> type`, |...| -> type | Type de retour de fonction et de fermeture | | +| `.` | `expr.ident` | Accès à un membre | | +| `..` | `..`, `expr..`, `..expr`, `expr..expr` | Littéral d'intervalle d'exclusion | | +| `..=` | `..=expr`, `expr..=expr` | Littéral d'intervalle d'inclusion | | +| `..` | `..expr` | Syntaxe de mise à jour de litéraux de structure | | +| `..` | `variant(x, ..)`, `struct_type { x, .. }` | Motif “ainsi que la suite” | | +| `...` | `expr...expr` | Dans un motif : motif d'intervalle inclusif | | +| `/` | `expr / expr` | Division arithmétique | `Div` | +| `/=` | `var /= expr` | Division arithmétique et assignation | `DivAssign` | +| `:` | `pat: type`, `ident: type` | Contrainte | | +| `:` | `ident: expr` | Initialisateur de champ de structure | | +| `:` | `'a: loop {...}` | Étiquette de boucle | | +| `;` | `expr;` | Fin d'élément et d'instruction | | +| `;` | `[...; len]` | Partie de la syntaxe d'un tableau de taille fixe | | +| `<<` | `expr << expr` | Décalage à gauche | `Shl` | +| `<<=` | `var <<= expr` | Décalage à gauche et assignation | `ShlAssign` | +| `<` | `expr < expr` | Comparaison "inférieur à" | `PartialOrd` | +| `<=` | `expr <= expr` | Comparaison "inférieur ou égal à" | `PartialOrd` | +| `=` | `var = expr`, `ident = type` | Assignation ou équivalence | | +| `==` | `expr == expr` | Comparaison d'égalité | `PartialEq` | +| `=>` | `pat => expr` | Partie de la syntaxe d'une branche de `match` | | +| `>` | `expr > expr` | Comparaison "supérieur à" | `PartialOrd` | +| `>=` | `expr >= expr` | Comparaison "supérieur ou égal à" | `PartialOrd` | +| `>>` | `expr >> expr` | Décalage à droite | `Shr` | +| `>>=` | `var >>= expr` | Décalage à droite et assignation | `ShrAssign` | +| `@` | `ident @ pat` | Création d'un identificateur à partir d'un motif | | +| `^` | `expr ^ expr` | OU exclusif binaire | `BitXor` | +| `^=` | `var ^= expr` | OU exclusif binaire et assignation | `BitXorAssign` | +| | | pat | pat | Alternatives dans un motif | | +| | | expr | expr | OU binaire | `BitOr` | +| |= | var |= expr | OU binaire et assignation | `BitOrAssign` | +| || | expr || expr | OU logique | | +| `?` | `expr?` | Propagation d'erreur | | + + + +### Les symboles non-opérateurs + + + +La liste suivante contient tout ce qui ne s'écrit pas en lettres et qui ne +fonctionne pas comme un opérateur ; autrement dit, tout ce qui ne se comporte +pas comme un appel de fonction ou de méthode. + + + +Le tableau B-2 montre des symboles qui s'utilisent tout seuls et qui sont +valables dans plusieurs situations. + + + +Tableau B-2 : éléments de syntaxe autonomes + + + +| Symbole | Explication | +|---------|-------------| +| `'ident` | Nom d'une durée de vie ou étiquette de boucle | +| `...u8`, `...i32`, `...f64`, `...usize`, etc. | Littéral de nombre d'un type spécifique | +| `"..."` | Littéral de chaîne de caractères | +| `r"..."`, `r#"..."#`, `r##"..."##`, etc. | Littéral brut de chaîne de caractères, les caractères d'échappement ne sont pas traités | +| `b"..."` | Littéral de chaîne d'octets ; construit un `[u8]` au lieu d'une chaîne de caractères | +| `br"..."`, `br#"..."#`, `br##"..."##`, etc. | Littéral brut de chaîne d'octets, combinaison du littéral brut de chaîne et de la chaîne d'octets | +| `'...'` | Littéral de caractère | +| `b'...'` | Littéral d'octet ASCII | +| |...| expr | Une fermeture | +| `!` | Le type “jamais”, toujours vide pour les fonctions divergentes | +| `_` | Le motif “ignoré” ; aussi utilisé pour rendre lisibles les littéraux de nombres | + + + +Le tableau B-3 montre des symboles qui s'utilisent dans le contexte d'un chemin +dans une structure de modules pour obtenir un élément. + + + +Tableau B-3 : éléments de syntaxe utilisés pour les +chemins + + + +| Symbole | Explication | +|---------|-------------| +| `ident::ident` | Chemin d'un espace de nom | +| `::path` | Chemin relatif à la crate racine (c'est-à-dire un chemin explicitement absolu) | +| `self::path` | Chemin relatif au module courant (c'est-à-dire un chemin explicitement relatif) | +| `super::path` | Chemin relatif au parent du module courant | +| `type::ident`, `::ident` | Des constantes, fonctions et types associés | +| `::...` | Un élément associé pour un type qui ne peut pas être directement nommé (par exemple, `<&T>::...`, `<[T]>::...`, etc.) | +| `trait::method(...)` | Clarifier l'appel d'une méthode en nommant le trait qui le définit | +| `type::method(...)` | Clarifier l'appel d'une méthode en nommant le type pour lequel elle est définie | +| `::method(...)` | Clarifier l'appel d'une méthode en nommant le trait et le type | + + + +Le tableau B-4 montre des symboles qui apparaissent dans le contexte +d'utilisation de paramètres de type génériques. + + + +Tableau B-4 : génériques + + + +| Symbole | Explication | +|---------|-------------| +| `path<...>` | Précise des paramètres sur un type générique utilisé dans un type (par exemple, `Vec`) | +| `path::<...>`, `method::<...>` | Précise des paramètres sur un type générique, une fonction, ou une méthode dans une expression ; parfois appelé turbofish (par exemple, `"42".parse::()`) | +| `fn ident<...> ...` | Définit une fonction générique | +| `struct ident<...> ...` | Définit une structure générique | +| `enum ident<...> ...` | Définit une énumération générique | +| `impl<...> ...` | Définit une implémentation générique | +| `for<...> type` | Augmente la durée de vie | +| `type` | Un type générique sur lequel un ou plusieurs types associés ont des affectations spécifiques (par exemple, `Iterator`) | + + + +Le tableau B-5 montre des symboles qui s'utilisent pour contraindre des +paramètres de type génériques avec des traits liés. + + + +Tableau B-5 : contraintes de trait lié + + + +| Symbole | Explication | +|---------|-------------| +| `T: U` | Paramètre générique `T` contraint aux types qui implémentent `U` | +| `T: 'a` | Type générique `T` doit vivre aussi longtemps que la durée de vie `'a` (ce qui signifie que le type ne peut pas contenir temporairement de références avec une durée de vie plus petite que `'a`) | +| `T : 'static` | Type générique `T` qui ne contient aucune référence empruntée qui ne soit pas `'static` | +| `'b: 'a` | La durée de vie générique `'b` doit vivre aussi longtemps que `'a` | +| `T: ?Sized` | Permet aux paramètres de type génériques d'être de type à taille dynamique | +| `'a + trait`, `trait + trait` | Contrainte de type composé | + + + +Le tableau B-6 montre des symboles qui s'utilisent lors de l'appel ou de la +définition de macros et pour spécifier des attributs sur un élément. + + + +Tableau B-6 : macros et attributs + + + +| Symbole | Explication | +|---------|-------------| +| `#[meta]` | Attribut externe | +| `#![meta]` | Attribut interne | +| `$ident` | Substitution de macro | +| `$ident:kind` | Capture de macro | +| `$(…)…` | Répétition de macro | +| `ident!(...)`, `ident!{...}`, `ident![...]` | Appel d'une macro | + + + +Le tableau B-7 montre des symboles pour créer des commentaires. + + + +Tableau B-7 : commentaires + + + +| Symbole | Explication | +|---------|-------------| +| `//` | Ligne de commentaire | +| `//!` | Commentaire de documentation sur l'élément contenant ce commentaire | +| `///` | Commentaire de documentation sur l'élément suivant ce commentaire | +| `/*...*/` | Bloc de commentaire | +| `/*!...*/` | Bloc de commentaire de documentation sur l'élément contenant ce commentaire | +| `/**...*/` | Bloc de commentaire de documentation sur l'élément suivant ce commentaire | + + + +Le tableau B-8 montre des symboles utilisés avec les tuples. + + + +Tableau B-8 : les tuples + + + +| Symbole | Explication | +|---------|-------------| +| `()` | Un tuple vide (aussi appelé unité), à la fois un type et un littéral | +| `(expr)` | Une expression entre parenthèses | +| `(expr,)` | Une expression tuple contenant un seul élément | +| `(type,)` | Un type tuple contenant un seul élément | +| `(expr, ...)` | Une expression tuple | +| `(type, ...)` | Un type tuple | +| `expr(expr, ...)` | Une expression d'appel à une fonction ; aussi utilisé pour initialiser une structure tuple ou une variante d'énumération tuple | +| `expr.0`, `expr.1`, etc. | Utilisation d'indices sur un tuple | + + + +Le tableau B-9 montre les contextes d'utilisation des accolades. + + + +Tableau B-9 : accolades + + + +| Symbole | Explication | +|---------|-------------| +| `{...}` | Un bloc d'expression | +| `Type {...}` | Un littéral de `struct` | + + + +Le tableau B-10 montre les contextes d'utilisation des crochets. + + + +Tableau B-10 : crochets + + + +| Symbole | Explication | +|---------|-------------| +| `[...]` | Un littéral de tableau | +| `[expr; len]` | Un littéral de tableau qui contient `len` copies de `expr` | +| `[type; len]` | Un type de tableau qui contient `len` instances de `type` | +| `expr[expr]` | Une collection indexée (surchargeable via `Index` et `IndexMut`) | +| `expr[..]`, `expr[a..]`, `expr[..b]`, `expr[a..b]` | Une collection indexée qui se comporte comme une slice de collection, grâce à l'utilisation de `Range`, `RangeFrom`, `RangeTo`, ou de `RangeFull` comme “indice” | diff --git a/FRENCH/src/translation-terms.md b/FRENCH/src/translation-terms.md index 1d70c8a595..73ed626aaf 100644 --- a/FRENCH/src/translation-terms.md +++ b/FRENCH/src/translation-terms.md @@ -140,6 +140,7 @@ français. | numerical characters | chiffres | - | | object-oriented language | langage orienté objet | - | | operating system | système d'exploitation | - | +| overload | surcharge | - | | owner | propriétaire | - | | ownership | possession | - | | package manager | système de gestion de paquets | - | @@ -216,6 +217,7 @@ français. | troubleshooting | dépannage | - | | tuple | tuple | - | | tuple struct | structure tuple | - | +| tuple enum | énumération tuple | - | | type | type | - | | type annotation | annotation de type | - | | type inference | inférence de types | - |