Macro std::writeln 1.0.0[−][src]
macro_rules! writeln { ($dst:expr $(,)?) => { ... }; ($dst:expr, $($arg:tt)*) => { ... }; }
Expand description
将格式化的数据写入缓冲区,并附加换行符。
在所有平台上,换行符仅是 LINE FEED 字符 (\n
/U+000A
) (没有其他的 CARRIAGE RETURN (\r
/U+000D
)。
有关更多信息,请参见 write!
。有关格式字符串语法的信息,请参见 std::fmt
。
Examples
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(()) }Run
模块可以同时在实现两者的对象上导入 std::fmt::Write
和 std::io::Write
以及调用 write!
,因为对象通常不会同时实现两者。
但是,该模块必须导入合格的 traits,以便其名称不会冲突:
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)?; // 使用 fmt::Write::write_fmt writeln!(&mut v, "s = {:?}", s)?; // 使用 io::Write::write_fmt assert_eq!(v, b"s = \"abc 123\\n\"\n"); Ok(()) }Run