Remarque Les détails de cette question concernant
read_line
et~str
se rapportent à une version antérieure à 1.0 de Rust. Les concepts généraux surunwrap
etunwrap_or
restent pertinents.
Je l'ai rencontré en lisant Rust for Rubyists i.e .:
let mut reader = BufferedReader::new(io::stdin());
let input = reader.read_line().unwrap_or(~"nothing");
Note Les détails de cette réponse concernant
read_line
et~str
se rapportent à une version antérieure à 1.0 de Rust. Les concepts généraux surunwrap
etunwrap_or
restent pertinents.
Car read_line
peut échouer, il renvoie Option<~str>
. Pour obtenir la valeur, vous pouvez utiliser la correspondance de motifs ou l'une des méthodes de déballage.
La différence entre unwrap
et unwrap_or
est que unwrap
échouera s'il n'y a pas de valeur (None
) mais unwrap_or
renverra la valeur par défaut spécifiée ("rien" dans ce cas)
Remarque Les détails de cette réponse concernant
read_line
Et~str
Se rapportent à une version pré-1.0 de Rust. Les concepts généraux concernantunwrap
etunwrap_or
Restent pertinents.
Rust possède une documentation API qui explique ces choses.
fn read_line(&mut self) -> Option<~str>
Lit la ligne d'entrée suivante, interprétée comme une séquence de points de code Unicode codés UTF-8. Si une nouvelle ligne est rencontrée, alors la nouvelle ligne est contenue dans la chaîne retournée.
…
[Ensuite, quelque chose sur l'augmentation de la condition
io_error
, Qui est une situation dans laquelle elle retourneraitNone
— si la condition est gérée. Si ce n'est pas le cas, cela échouera et vous ne récupérerez donc jamais rien.]
Vous obtiendrez également None
retourné si tout a été lu dans le lecteur.
fn unwrap(self) -> T
Déplace une valeur d'un type d'option et la renvoie.
Utile principalement pour extraire des chaînes, des vecteurs et des pointeurs uniques de types d'options sans les copier.
…
C'est,
Some(a).unwrap()
renvoie a
None.unwrap()
échoue
fn unwrap_or(self, def: T) -> T
Renvoie la valeur contenue ou une valeur par défaut
C'est,
Some(a).unwrap_or(b)
renvoie a
None.unwrap_or(b)
renvoie b