本文简要介绍rust语言中 Macro core::writeln
的用法。
用法
macro_rules! writeln {
($dst : expr $(,) ?) => { ... };
($dst : expr, $($arg : tt) *) => { ... };
}
将格式化的数据写入缓冲区,并附加换行符。
在所有平台上,换行符都是 LINE FEED 字符(\n
/U+000A
)(没有额外的回车(\r
/U+000D
)。
有关详细信息,请参阅 write!
。有关格式字符串语法的信息,请参阅 std::fmt
。
例子
use std::io::{Write, Result};
fn main() -> Result<()> {
let mut w = Vec::new();
writeln!(&mut w)?;
writeln!(&mut w, "test")?;
writeln!(&mut w, "formatted {}", "arguments")?;
assert_eq!(&w[..], "\ntest\nformatted arguments\n".as_bytes());
Ok(())
}
模块可以同时导入 std::fmt::Write
和 std::io::Write
并在实现其中任何一个的对象上调用 write!
,因为对象通常不会同时实现这两者。但是,模块必须导入限定的特征,以便它们的名称不会冲突:
use std::fmt::Write as FmtWrite;
use std::io::Write as IoWrite;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut s = String::new();
let mut v = Vec::new();
writeln!(&mut s, "{} {}", "abc", 123)?; // uses fmt::Write::write_fmt
writeln!(&mut v, "s = {:?}", s)?; // uses io::Write::write_fmt
assert_eq!(v, b"s = \"abc 123\\n\"\n");
Ok(())
}
相关用法
- Rust write_volatile用法及代码示例
- Rust write用法及代码示例
- Rust write_unaligned用法及代码示例
- Rust write_bytes用法及代码示例
- Rust UdpSocket.set_multicast_loop_v6用法及代码示例
- Rust i64.overflowing_add_unsigned用法及代码示例
- Rust Box.downcast用法及代码示例
- Rust BTreeMap.last_key_value用法及代码示例
- Rust str.make_ascii_uppercase用法及代码示例
- Rust u128.checked_pow用法及代码示例
- Rust usize.wrapping_mul用法及代码示例
- Rust AtomicU8.fetch_sub用法及代码示例
- Rust PanicInfo.payload用法及代码示例
- Rust MaybeUninit.assume_init_mut用法及代码示例
- Rust String.try_reserve用法及代码示例
- Rust Mutex.new用法及代码示例
- Rust f32.exp用法及代码示例
- Rust Result.unwrap_or_else用法及代码示例
- Rust slice.sort_unstable_by_key用法及代码示例
- Rust Formatter.precision用法及代码示例
- Rust i128.log2用法及代码示例
- Rust OsStr.to_ascii_uppercase用法及代码示例
- Rust f32.hypot用法及代码示例
- Rust RefCell.try_borrow_unguarded用法及代码示例
- Rust i16.log10用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Macro core::writeln。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。