在 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'!
').unwrap();
    }
}

因此,println! 后面的 ! 实际上告诉编译器将宏展开成相应的代码。

Rust 中 println! 宏的展开过程详解

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

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