我最初的问题是将不同类型的元组转换为字符串.在Python中,这将是这样的:
>> a = ( 1.3, 1, 'c' )
>> b = map( lambda x: str(x), a )
['1.3', '1', 'c']
>> " ".join(b)
'1.3 1 c"
Run Code Online (Sandbox Code Playgroud)
然而,Rust不支持元组上的映射 - 仅支持类似矢量的结构.显然,这是因为能够将不同类型打包成元组并且缺少函数重载.此外,我找不到在运行时获取元组长度的方法.所以,我想,需要一个宏来进行转换.
首先,我尝试匹配元组的头部,例如:
// doesn't work
match some_tuple {
(a, ..) => println!("{}", a),
_ => ()
}
Run Code Online (Sandbox Code Playgroud)
所以,我的问题: