You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on May 18, 2023. It is now read-only.
Copy file name to clipboardExpand all lines: rust_FAQ_Markdown/rust_FAQ.md
+44-7Lines changed: 44 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -398,8 +398,8 @@ use Video;
398
398
399
399
Le mot-clé `pub` peut être utilisé dans *trois* contextes différents :
400
400
401
-
1. Au sein [et sur] des modules;
402
-
2. Au sein [et sur] des traits;
401
+
1. Au sein [et sur] des modules;
402
+
2. Au sein [et sur] des traits;
403
403
3. Au sein [et sur] des structures.
404
404
405
405
Dans un premier temps, qu'il soit utilisé sur des `mod`ules, `trait`s, ou `struct`ures, il aura toujours la même fonction : rendre public l'objet concerné.
@@ -448,7 +448,7 @@ Renvoie :
448
448
Hi there !
449
449
```
450
450
451
-
« mon_projet » est le nom porté par votre projet dans le manifest Cargo.toml.
451
+
`mon_projet` est le nom porté par votre projet dans le manifest `Cargo.toml`.
452
452
453
453
Pour cet exemple, voici le manifest rédigé :
454
454
@@ -488,7 +488,7 @@ impl A {
488
488
489
489
### A quoi servent les mot-clés extern crate ?
490
490
491
-
Les mot-clés `extern crate` permettent d'importer un paquet entier de modules dans le fichier courant, aussi appelé crate.
491
+
Les mot-clés `extern crate` permettent d'importer un paquet entier de modules dans le fichier courant, aussi appelé *crate*.
492
492
493
493
Le principe est simple, il vous suffit seulement de créer en premier lieu un projet en mode « bibliothèque » pour réunir tous les modules que vous créerez, de créer un fichier qui accueillera le point d'entrée de votre programme, puis d'importer votre paquet.
494
494
@@ -762,7 +762,7 @@ macro_rules! foo
762
762
}
763
763
```
764
764
765
-
Toutes les macros (y compris celle présentée ici) respectent une règle très importante : elles doivent toutes capturer au moins une expression pour être valide et compilées. (en l'occurrence, la regex `() => () ;`)
765
+
Toutes les macros (y compris celle présentée ici) respectent une règle très importante : elles doivent toutes capturer au moins une expression pour être valides et compilées. (en l'occurrence, la regex `() => () ;`)
766
766
767
767
C'est donc cela, l'une des différences majeures entre une fonction/procédure et une macro : cette dernière est capable de capturer des expressions rationnelles, conserver en mémoire ce que désire le développeur, puis de les ré-utiliser dans le corps de l'une d'entre-elles.
768
768
@@ -1140,7 +1140,7 @@ pub mod votre_conteneur {
1140
1140
1141
1141
Si votre problème persiste, je vous invite à vous rendre sur les forums figurant dans la rubrique programmation pour obtenir de l'aide. Présentez clairement l'erreur que le compilateur vous renvoi dans votre post.
1142
1142
1143
-
### A quoi servent les mot-clés if let ?
1143
+
### A quoi servent les mot-clés `if let` ?
1144
1144
1145
1145
La combinaison des deux mot-clés permet d'assigner, de manière concise, du contenu à une variable.
1146
1146
@@ -1160,7 +1160,7 @@ fn main() {
1160
1160
1161
1161
C'est un moyen simple et efficace d'assigner du contenu sans passer par le pattern matching.
1162
1162
1163
-
### A quoi servent les mot-clés while let ?
1163
+
### A quoi servent les mot-clés `while let` ?
1164
1164
1165
1165
La combinaison des deux mot-clés permet d'effectuer des tests de manière concise et ainsi nous éviter de passer par le pattern matching lorsque ça n'est pas nécessaire. (`while let` peuvent s'avérer très utiles lorsqu'il faut tester à chaque itération si le fichier contient toujours quelque chose)
1166
1166
@@ -1891,6 +1891,29 @@ Voir aussi :
1891
1891
1892
1892
### A quoi sert la macro try! ?
1893
1893
1894
+
La macro `try!` permet de s'assurer de l'intégrité de la ressource.
1895
+
Si la ressource *enveloppée* par la macro `try!` est intègre, elle sera *bindée* à l'identificateur qui lui est assigné.
1896
+
Sinon, `try!` effectue un retour, renvoi prématuré.
1897
+
1898
+
#### Note
1899
+
1900
+
Attention toutefois à ne pas oublier qu'une fonction usant de cette macro doit forcément renvoyer une instance de `Result<(), io::Error>`. (le type de la valeur renvoyée en cas de succès est arbitaire)
1901
+
1902
+
```rust
1903
+
fnfoo(string:&String) ->Result<(), io::Error>
1904
+
{
1905
+
try!(std::fs::File::create("my_file.txt"));
1906
+
println!("Une chance sur deux pour que je sois du code mort !");
1907
+
Ok(())
1908
+
}
1909
+
fnbar(string:&String) ->std::fmt::Result<()> //fonctionne également avec l'alias de Result<T, E>
1910
+
{
1911
+
try!(std::fs::File::create("my_file.txt"));
1912
+
println!("Une chance sur deux pour que je sois du code mort !");
1913
+
Ok(())
1914
+
}
1915
+
```
1916
+
1894
1917
### Comment utiliser la macro assert! ?
1895
1918
1896
1919
La macro `assert!` capture deux types « d'expressions » différents :
@@ -2060,6 +2083,20 @@ fn main() {
2060
2083
2061
2084
## I/O
2062
2085
2086
+
### Que puis-je trouver dans cette section ?
2087
+
2088
+
Dans cette section, vous retrouverez toutes les questions couramment posées concernant l'utilisation des outils dédiés à la gestion des flux.
2089
+
2090
+
### Comment créer un fichier ?
2091
+
2092
+
### Comment lire le contenu d'un fichier ?
2093
+
2094
+
### Comment écrire à l'intérieur d'un fichier ?
2095
+
2096
+
### Comment différencier un fichier d'un répertoire ?
0 commit comments