| Imprime | |
|---|---|
| Rust | |
Syntaxe
|
macro_rules! print { ($($arg:tt)*) => { ... }; } |
Description
Cette macro permet d'afficher une chaîne formatée vers la sortie standard (stdout), sans ajout de saut de ligne.
Remarques
Permet d'afficher la sortie standard.
Équivalent à la macro println!, sauf qu'aucun retour à la ligne n'est affiché à la fin du message.
Notez que la sortie standard est souvent mise en mémoire tampon par défaut ; il peut donc être nécessaire d'utiliser io::stdout().flush() pour garantir l'émission immédiate de la sortie.
La macro print! verrouille la sortie standard à chaque appel. Si vous appelez print! dans une boucle active, ce comportement peut constituer un goulot d'étranglement. Pour éviter cela, verrouillez la sortie standard avec io::stdout().lock() :
Utilisez print! uniquement pour la sortie principale de votre programme. Utilisez plutôt eprint! pour afficher les messages d'erreur et de progression.
Paniques
Panique en cas d'échec d'écriture sur io::stdout().
L'écriture sur une sortie standard non bloquante peut provoquer une erreur, ce qui entraînera une panique de cette macro.
Exemples
- use std::io::{self, Write};
-
- print!("ce ");
- print!("sera ");
- print!("est ");
- print!("sur ");
- print!("le ");
- print!("même ");
- print!("ligne ");
-
- io::stdout().flush().unwrap();
-
- print!("cette chaîne a une nouvelle ligne, pourquoi ne pas choisir println! à la place?\n");
-
- io::stdout().flush().unwrap();