在 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! 后面的 ! 实际上告诉编译器将宏展开成相应的代码。

rust中println后的!被编译器生成后是什么样子的

原文地址: https://www.cveoy.top/t/topic/vrl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录