gpt4 book ai didi

rust - 将 println 设为宏有什么好处?

转载 作者:行者123 更新时间:2023-12-04 11:22:19 25 4
gpt4 key购买 nike

在这段代码中,有一个 !println :

fn main() {
println!("Hello, world!");
}
在我见过的大多数语言中,打印操作是一个函数。为什么它是 Rust 中的宏?

最佳答案

通过成为程序宏,println!()获得以下能力:

  • 自动引用其参数。例如这是有效的:
    let x = "x".to_string();
    println!("{}", x);
    println!("{}", x); // Works even though you might expect `x` to have been moved on the previous line.
  • 接受任意数量的参数。
  • 在编译时验证格式字符串占位符和参数是否匹配。这是 C 的错误的常见来源 printf() .

  • 对于普通的函数或方法,这些都不可能。
    也可以看看:
  • Does println! borrow or own the variable?
  • How can I create a function with a variable number of arguments?
  • Is it possible to write something as complex as `print!` in a pure Rust macro?
  • What is the difference between macros and functions in Rust?
  • 关于rust - 将 println 设为宏有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67509637/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com