首页 > 解决方案 > 理解 Rust 中的泛型 FromIterator

问题描述

我是新手,我发现自己迷失在第二行。我该如何解释它?哪一个是我可以用来进行转换的交互器SimpleLinkedList

impl<T> FromIterator<T> for SimpleLinkedList<T> {
    fn from_iter<I: IntoIterator<Item = T>>(_iter: I) -> Self {
        unimplemented!()
    }
}

标签: genericsrustlinked-listiteratortraits

解决方案


我发现自己迷失在第二行。我该如何解释它?

哪一部分?from_iter被定义为在 type 上参数化的泛型函数I。然后该类型有界(意味着它必须实现)IntoIterator<Item=T>

IntoIterator<Item=T>意味着该类型可以迭代(转换为 an Iterator)并产生T。用其他语言的术语来说,它是Ts的迭代。

一个通用函数也是如此from_iter,它的输入是应该包含的任何项目的可迭代( )。IntoIteratorSimpleLinkedList

哪一个是interator

_iter.into_iter()将是输入迭代器。您也可以只使用 for 循环进行迭代,因为它使用trait_iter隐式地​​将其 RHS 转换为迭代器。IntoIterator


推荐阅读