Back to Tips
astuces frappe RustRust ownership borrowingRust pattern matching

Astuces de Frappe Rust : Maîtrisez la Syntaxe Rust pour Coder Plus Vite

Apprenez des conseils essentiels pour taper du code Rust plus rapidement. De l'ownership et borrowing, pattern matching et gestion des Result aux lifetimes et traits, améliorez votre vitesse et précision de frappe Rust.

Rust est un langage de programmation système qui garantit la sécurité mémoire sans ramasse-miettes. Sa syntaxe unique comprend la sémantique d'ownership, les lifetimes et le puissant pattern matching. Maîtriser la frappe efficace du code Rust peut améliorer significativement votre productivité.

Pourquoi les compétences de frappe Rust sont importantes

La syntaxe de Rust inclut de nombreux symboles et motifs uniques non trouvés dans d'autres langages. Des opérateurs d'ownership (&, &mut) au turbofish (::<>) et l'opérateur point d'interrogation (?), il y a beaucoup de caractères à maîtriser.

Symboles Rust essentiels à maîtriser

1

Esperluette (&)

Références et borrowing.

2

Double deux-points (::)

Séparateur de chemin pour modules et types.

3

Flèche (->)

Annotation de type de retour.

4

Point d'interrogation (?)

Opérateur de propagation d'erreur.

5

Pipe (|)

Paramètres de closure.

6

Chevrons (<>)

Génériques et turbofish.

7

Apostrophe (')

Annotations de lifetime.

8

Dièse (#)

Attributs et macros derive.

Motifs de Déclaration de Variables en Rust

Les bindings de variables sont fondamentaux en Rust :

rust
let x = 5;
rust
let mut count = 0;
rust
let name: String = String::from("hello");
rust
const MAX_SIZE: usize = 100;

Motifs de Fonctions en Rust

Les fonctions sont les blocs de construction :

rust
fn add(a: i32, b: i32) -> i32 {
    a + b
}
rust
fn greet(name: &str) -> String {
    format!("Hello, {}!", name)
}

Motifs Ownership et Borrowing en Rust

L'ownership est la caractéristique la plus unique de Rust :

rust
let s1 = String::from("hello");
let s2 = s1; // s1 est déplacé
rust
fn print_length(s: &String) {
    println!("Length: {}", s.len());
}
rust
fn push_char(s: &mut String) {
    s.push('!');
}

Motifs de Struct en Rust

Les structs créent des types de données personnalisés :

rust
struct User {
    name: String,
    email: String,
    age: u32,
}
rust
#[derive(Debug, Clone)]
struct Point {
    x: f64,
    y: f64,
}

Motifs de Bloc Impl en Rust

Les blocs d'implémentation ajoutent des méthodes :

rust
impl User {
    fn new(name: String, email: String) -> Self {
        Self { name, email, age: 0 }
    }
}

Motifs de Trait en Rust

Les traits définissent un comportement partagé :

rust
trait Summary {
    fn summarize(&self) -> String;
}
rust
impl Summary for Article {
    fn summarize(&self) -> String {
        format!("{} by {}", self.title, self.author)
    }
}

Enum et Pattern Matching en Rust

Enum et match sont puissants en Rust :

rust
enum Message {
    Quit,
    Move { x: i32, y: i32 },
    Write(String),
}
rust
match message {
    Message::Quit => println!("Quit"),
    Message::Move { x, y } => println!("Move to {}, {}", x, y),
    Message::Write(text) => println!("Write: {}", text),
}

Gestion de Result et Option en Rust

La gestion d'erreur est explicite en Rust :

rust
fn read_file(path: &str) -> Result<String, io::Error> {
    let content = fs::read_to_string(path)?;
    Ok(content)
}
rust
let value = option.unwrap_or(default);

Motifs de Lifetime en Rust

Les lifetimes assurent que les références sont valides :

rust
fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
    if x.len() > y.len() { x } else { y }
}

Motifs de Closure en Rust

Les closures sont des fonctions anonymes :

rust
let add = |a, b| a + b;
rust
items.iter().map(|x| x * 2).collect()

Motifs d'Itérateur en Rust

Les itérateurs sont centraux en Rust idiomatique :

rust
let sum: i32 = numbers.iter().sum();
rust
let doubled: Vec<i32> = numbers.iter().map(|x| x * 2).collect();

Motifs de Vecteur et Collection en Rust

Travailler avec les collections est courant :

rust
let vec = vec![1, 2, 3, 4, 5];
rust
let mut map = HashMap::new();
map.insert("key", "value");

Motifs de Macro en Rust

Les macros sont identifiées par le point d'exclamation :

rust
println!("Hello, {}!", name);
rust
vec![1, 2, 3]

Mots-clés courants à pratiquer

Variables : let, mut, const, static

Types : struct, enum, type, impl, trait

Fonctions : fn, return, self, Self

Contrôle : if, else, match, loop, while, for

Modules : mod, use, pub, crate

Erreurs courantes et comment les éviter

Oublier mut - N'oubliez pas d'ajouter mut pour les bindings mutables

Annotations de lifetime manquantes - Pratiquez la syntaxe 'a

Confusion des références - Sachez quand utiliser &, &mut et les valeurs owned

Commencez à pratiquer la frappe Rust sur DevType aujourd'hui !

Put these tips into practice!

Use DevType to type real code and improve your typing skills.

Start Practicing