我有一个来自外部库[1]的函数,类似于:
fn set_color(r: f64, g: f64:, b: f64)
我想使用元组来管理我的颜色,例如:
let yellow = (1., 1., 0.);
我考虑了一个类似于以下的宏:
macro_rules! rgb {
( $rgb:expr ) => { rgb.0, rgb.1, rgb.2 }
}
然后
set_color(rgb!(yellow));
不幸的是,Rust 报错:error: macro expansion ignores token ',' and any following
。
我该怎么做呢?
[1]: cairo::Context::set_source_rgb()
和其他相关函数
fn rgb(color_tup: (f64, f64, f64))
? - chub500fn set_color_tup(color: (f64, f64, f64))
。我认为这是一个很好的元组结构体使用案例。如果OP担心性能问题,那么这个内联函数应该与宏完全相同。 - chub500cairo::
有很多类似的函数。 - Johannes Mueller