小编ole*_*eid的帖子

如何迭代或映射元组?

我最初的问题是将不同类型的元组转换为字符串.在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)

所以,我的问题:

  1. 是否可以使用库函数将元组转换为字符串,指定任意分隔符?
  2. 如何编写一个宏,以便能够将函数映射到任意大小的元组?

loops tuples rust

13
推荐指数
1
解决办法
8003
查看次数

标签 统计

loops ×1

rust ×1

tuples ×1