Rust中IntoIterator类型匹配错误及len方法问题排查
Rust容器写入文件的类型约束问题解决
- 编写容器写入文件的Rust代码时,最初指定
std::fmt::Displaytrait约束(依赖其to_string()实现),但传入Vec<f64>时触发类型不匹配错误:期望trait object (dyn std::fmt::Display + 'static),实际传入的是f64类型。 - 尝试改用
ToStringtrait约束,仍出现相同的类型不匹配错误。 - 调整函数定义过程中,又遇到
len方法未找到的错误。
最终通过绑定IntoIterator::IntoIter到ExactSizeIterator解决所有问题,函数签名如下:
pub fn write_to_file<T, I>(data_line: T) -> Result<(), Box<dyn Error>> where T: IntoIterator<IntoIter = I>, I: ExactSizeIterator, <I as Iterator>::Item: ToString,
内容的提问来源于stack exchange,提问作者Liam Clink
相关产品推荐
相关产品推荐

