【发布时间】:2017-01-25 00:27:11
【问题描述】:
给定:
format!("{red}{}{reset}", "text", red = "RED", blue = "BLUE", reset = "RESET");
编译器出现错误退出:
error: named argument never used
--> example.rs:1:47
|
1 | format!("{red}{}{reset}", "text", red = "RED", blue = "BLUE", reset = "RESET");
| ^^^^^^^^^^^^^
通常,这不会是问题,因为应该删除 blue,但我的用例是一个包装宏(简化):
macro_rules! log {
($fmt:expr, $($arg:tt)*) => {
println!($fmt, $($arg)*, blue = "BLUE", red = "RED", reset = "RESET");
};
}
有时,它是这样使用的(简化),但其他时候使用不同的颜色,你就会明白要点:
log!("{red}{}{reset}", "text");
编译器退出并出现类似错误:
error: named argument never used
--> example.rs:3:26
|
3 | println!($fmt, $($arg)*, blue = "BLUE", red = "RED", reset = "RESET");
| ^^^^^^^^^^^^^
是否可以只忽略未使用的参数,而不是在它们上出错?
【问题讨论】:
标签: rust