rust - 如何约束迭代器的元素类型?

标签 rust

我正在转换一些旧的 Rust 代码以在 1.0.0 上工作。我需要转换一个接受字符迭代器的函数,它曾经是这样写的:

 fn f<I: Iterator<char>>(char_iter: I)

既然Iterator不带参数,那么对I的约束就只能是I:Iterator了。元素类型则为 I::Item。有没有办法表达 I::Item = char 的约束? (或者我应该完全以另一种方式来做这件事吗?)

最佳答案

fn f<I: Iterator<Item = char>>(char_iter: I)

最近将关联类型添加到该语言中,并且更新了许多库类型以利用它们。例如,Iterator定义了一个关联类型,名为 Item。您可以通过写入关联类型的名称、等号和您需要的类型来添加对关联类型的约束。

关于rust - 如何约束迭代器的元素类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27893501/

相关文章:

rust - 在包含动态大小数组的缓冲区上创建结构 "view"

rust - 为什么从 stdin 读取的字符串与我比较的字符串不匹配?

rust - 如何在 Rust 的 for 循环中使用多个变量?

rust - 将usize转换为f32

rust - 在当前作用域中未找到结构 `now` 的名为 `chrono::offset::utc::Utc` 的函数或关联项

rust - “静态作为函数约束”是什么意思?

java - Java 可以在没有 GC 的情况下运行吗

rust - 创建具有实现某些特征的值的记录器

rust - 如何在Rust中将本地时区从UTC转换为UTC

Rust Actix:为 System::current() 获取 SystemRunner