rust 解析字符串元组以使用大小

b4lqfgs4  于 2023-01-13  发布在  其他
关注(0)|答案(1)|浏览(118)

解析("5", "6")(5, 6)的惯用方法是什么?我已经尝试过调用.map(String::parse::<usize>),但是不起作用,因为元组不是迭代器。我也不能调用.into_iter()

yqhsw0fo

yqhsw0fo1#

元组应该是异构集合,因此您实际上不能迭代它们,因为原则上不同的元素可以具有不同的类型。
所以最简单的方法就是

let a: usize = my_tuple.0.parse()?;
let b: usize = my_tuple.1.parse()?;

如果你需要一些更“复杂”的东西,你必须使用一个宏:How to iterate or map over tuples?
当你把它和Python比较时,这看起来似乎是不必要的麻烦,Python中的元组确实是可迭代的,但那是因为你在Python中有动态和duck类型,所以元组可以是异构的(不同的数据类型在不同的位置)这一事实并不是什么大问题。
想一想,在类型为(i32, String, Option<f64>)的元组中传递给map的闭包的签名是什么?

相关问题