我读了这段代码 https://boats.gitlab.io/blog/post/2018-01-25-async-i-self-referential-structs/:
pub fn up_to(limit: u64) -> impl Generator<Yield = u64, Return = u64> {
move || {
for x in 0..limit {
yield x;
}
return limit;
}
}
什么是impl
意思是?这如何用普通的 Rust 或 C++ 来实现?
这是新的impl Trait https://github.com/rust-lang/rfcs/blob/master/text/1522-conservative-impl-trait.md语法允许程序员避免命名泛型类型。该功能可用日期为生锈 1.26 https://blog.rust-lang.org/2018/05/10/Rust-1.26.html.
在这里,它被用在返回位置说“返回的类型将实现这个特征,这就是我要告诉你的”。在这种情况下,请注意函数的所有返回路径必须返回完全相同的具体类型。
该语法也可以用于论证立场,在这种情况下,调用者决定传递什么具体类型。
也可以看看:
- 在 Trait 定义中使用 impl Trait https://stackoverflow.com/q/39482131/155423
- impl 特征参数和泛型函数参数之间有什么区别? https://stackoverflow.com/q/47514930/155423
- 是什么使得 `impl Trait` 作为参数“通用”并且作为返回值“存在”? https://stackoverflow.com/q/47929824/155423
- 返回迭代器(或任何其他特征)的正确方法是什么? https://stackoverflow.com/q/27535289/155423
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)