Iterator 和 Iterable 之间的区别

Posted

技术标签:

【中文标题】Iterator 和 Iterable 之间的区别【英文标题】:Difference between Iterator and Iterable [duplicate] 【发布时间】:2016-08-20 20:21:25 【问题描述】:

Iterator 和 Iterable 有什么区别?一种是另一种的子类型吗?一些实际应用中的实际差异是什么?

我正在尝试阅读一些教程和规范,但它们都非常复杂。

(如果有帮助,我正在使用 ES6 和 Babel。)

【问题讨论】:

***.com/questions/6863182/… 致那些投票结束的人:这怎么太宽泛了?我要求使用特定语言的两个相关的具体概念。 (我不是在抱怨,只是在询问更多信息。) @Lashane 那个问题是关于 Java 的,我使用的是 ES6,这是一种不同的语言 建议的重复是关于另一种类似的语言,其中概念是相同的(可能复制自)。 从与语言无关的角度来看:迭代器是可以用来迭代容器内容的对象,而可迭代对象是可以为其内容提供迭代器的对象。不确定这是否会有所帮助,但也许会? 【参考方案1】:

来自Exploring ES6 Axel Rauschmayer 博士:

可迭代对象是一种数据结构,它希望其元素可供公众访问。它通过实现一个键为 Symbol.iterator 的方法来实现。该方法是迭代器的工厂。

迭代器是用于遍历数据结构元素的指针(想想数据库中的游标)。

【讨论】:

这个答案和提议的副本都对我有帮助,所以我将此问题标记为正在回答,并将提议的副本标记为重复

以上是关于Iterator 和 Iterable 之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

Iterator 和 Iterable 区别和联系

Python 中 Iterator和Iterable的区别

大杂烩 -- Iterator 和 Iterable 区别和联系

JDK源码Iterator与Iterable的实现与区别

JDK源码Iterator与Iterable的实现与区别

Python:Iterable和Iterator