rust中println后的!被编译器生成后是什么样子的
在 Rust 中,println! 是一个宏,而不是函数。在编译时,宏会被展开成一些代码,然后再编译这些代码。因此,println! 后面的 ! 是告诉编译器这是一个宏而不是函数。
在编译时,println! 宏会被展开成一些代码,例如:
fn main() {
let name = "world";
println!("Hello, {}!", name);
}
在编译时,它会被展开成以下代码:
fn main() {
let name = "world";
{
use std::io::Write;
let mut w = std::io::stdout();
w.write_all(b"Hello, ").unwrap();
w.write_all(name.as_bytes()).unwrap();
w.write_all(b"!\n").unwrap();
}
}
因此,println! 后面的 ! 实际上告诉编译器将宏展开成相应的代码。
原文地址: https://www.cveoy.top/t/topic/vrl 著作权归作者所有。请勿转载和采集!