Liaison avec @
Capturer et tester
Liaison avec @ est une leçon Learn Rust Coding gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn Rust Coding, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn Rust Coding comprend 4 leçons au total.
L'opérateur de liaison @
L'opérateur @ vous permet de tester une valeur par rapport à un motif et de l'associer à un nom en même temps. Vous obtenez à la fois la vérification et la valeur.
Le problème résolu
Avec un motif d'intervalle, vous savez qu'une valeur se trouve dans l'intervalle, mais vous perdez l'accès à sa valeur précise. @ la capture tout en vérifiant l'intervalle.
Liaison @ de base
Ici, nous faisons correspondre un nombre dans un intervalle et conservons sa valeur exacte grâce à id.
fn main() {
let n = 5;
match n {
id @ 1..=5 => println!("got {id} in range"),
_ => println!("out of range"),
}
}Sans @
Comparaison : un bras d'intervalle simple établit une correspondance, mais ne peut pas nommer la valeur ; vous ne pouvez donc pas afficher quel nombre a correspondu.
fn main() {
let n = 5;
match n {
1..=5 => println!("in range (value unknown here)"),
_ => println!("out of range"),
}
}@ avec des données d'énumération
Effectuez la liaison d'un champ tout en le contraignant. Ici, nous capturons l'identifiant uniquement s'il se trouve dans un intervalle valide.
enum Message {
Hello { id: i32 },
}
fn main() {
let msg = Message::Hello { id: 7 };
match msg {
Message::Hello { id: id @ 3..=10 } => {
println!("valid id {id}");
}
Message::Hello { id } => {
println!("other id {id}");
}
}
}Lier la valeur entière
@ peut également lier une valeur structurée entière pendant qu'un motif imbriqué vérifie ses parties.
fn main() {
let point = (3, 4);
match point {
p @ (x, _) if x > 0 => println!("{:?} has positive x", p),
p => println!("{:?}", p),
}
}Combiner avec |
Vous pouvez effectuer une liaison dans plusieurs motifs alternatifs. Le nom doit apparaître dans chaque branche alternative.
fn main() {
let code = 404;
match code {
c @ (400 | 404 | 500) => println!("error code {c}"),
c => println!("code {c}"),
}
}@ dans if let
Les liaisons avec @ fonctionnent également dans if let.
fn main() {
let value = Some(50);
if let Some(n @ 1..=100) = value {
println!("in range: {n}");
}
}Quand utiliser @
Utilisez @ lorsque vous avez besoin à la fois :
- de restreindre une valeur avec un intervalle ou un sous-motif
- d'utiliser cette valeur exacte dans le corps du bras
Sans ces deux besoins, une liaison ou un motif simple est plus approprié.
Lisibilité
La forme se lit name @ pattern : effectuer la liaison de name si la valeur correspond à pattern. Choisissez des noms explicites afin que l'intention soit claire.
Regrouper avec @
Une utilisation courante consiste à classer une valeur dans des catégories nommées tout en conservant le nombre d'origine pour les rapports.
fn classify(temp: i32) -> String {
match temp {
t @ ..=0 => format!("freezing ({t})"),
t @ 1..=20 => format!("cool ({t})"),
t @ 21..=30 => format!("warm ({t})"),
t => format!("hot ({t})"),
}
}
fn main() {
println!("{}", classify(25));
}Vérification rapide
Que fait l'opérateur @ dans un motif comme id @ 1..=5 ?
Récapitulatif
Vous avez appris l'opérateur de liaison @ :
- Il lie une valeur à un nom tout en la testant par rapport à un motif
- Il résout le problème de la valeur perdue avec les motifs d'intervalle
- Il fonctionne avec les données d'énumération, les tuples, les alternatives
|etif let - Utilisez-le lorsque vous avez besoin à la fois de la contrainte et de la valeur
Questions Fréquemment Posées
La leçon « Liaison avec @ » est-elle gratuite ?
Oui — le texte complet de « Liaison avec @ » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn Rust Coding, passe à CoddyKit PRO. Le cours Learn Rust Coding comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Liaison avec @ » ?
Capturer et tester Tu pratiques Learn Rust Coding avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Learn Rust Coding ?
Aucune expérience préalable n'est requise. Learn Rust Coding sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Liaison avec @ » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Learn Rust Coding ?
Oui. Chaque leçon Learn Rust Coding inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.