From acd9ab2d1515e31210615f4bd47d4e05f5c87f59 Mon Sep 17 00:00:00 2001 From: neodarz Date: Fri, 6 Sep 2019 07:30:36 +0200 Subject: More cheat --- dotfiles/cheat/rust | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/dotfiles/cheat/rust b/dotfiles/cheat/rust index 41406ca..d132c30 100644 --- a/dotfiles/cheat/rust +++ b/dotfiles/cheat/rust @@ -36,6 +36,72 @@ Un type "compound" regroupe différent type de valeurs en une seul. - Tuple (multi type) ex: (1, 'z', 0.9) - Array (same type) ex: [1, 2, 3] +# for loop +for el in array.iter() { + ... +} + +# for loop in range +for el in (1..4) { + ... +} + +# for loop in range reversed +for el in (1..4).rev() { + ... +} + +# Ownership + +Chaque valeur a une variable nommé "propriétaire" ("owner") +Il n'y peut y avoir qu'un seul proprioétaire à la fois +Quand le proprio est hors sujet, hors champs ("out of scope") la valeur est +supprimé + +# String + +String est mutable à l'inverse d'un string littéral. +Pour créer un String depuis un string littéral: +let s = String::from("hello"); + +Pour rajouter tu texte à un String: +s.push_str(", world"); + +# Move + +Pour déplacer le pointeur d'un string d'une variable à une autre: +let s1 = String::form("hello") +let s1 = s2 + +# Clone (deep copy) + +let s1 = String::from("hello"); +let s2 = s1.clone(); + +# Copy (Uniquement pour les données dite de type pile) + +let x = 5; +let y = x; + +# Types qui peuvent utiliser Copy +- Integer +- Boolean +- Float +- Characteres +- Tuples (Only if all type can use Copy) + +Lorsque que l'on passe une varaible à un fonction sans utiliser de références, +celle-ci n'est plus utilisable par la suite si elle n'est pas retourné par +ladite fonctions. + +# References +Permet de référer à une valeur sans en devenir propriétaire. + +Pour créer une référence il faut mettre le signe `&` avant la variable avant +de la passer à une fonction (par exemple): + +let len = calculate_length(&s1); + # outils voir pour `rustup` pour gérer cargo -- cgit v1.2.1