gpt4 book ai didi

objective-c - Swift 或 Objective C 中枚举器和迭代器的区别

转载 作者:行者123 更新时间:2023-11-28 14:21:16 25 4
gpt4 key购买 nike

在 Swift 或 Objective C 中,枚举器和迭代器有什么区别?请解释并给出一些枚举器和迭代器的例子。面试官问我,但我无法解释。 enumerator 是指 Enum 还是 iteration over collection?

按照我的低估迭代器对集合执行迭代/循环。例如 forEach、for 循环、while、do while 等。但我不知道什么是枚举器。

最佳答案

这两者在编程中的区别并不总是很大,您会发现这两个词可以互换使用,但它们确实描述了不同的东西。你写道:

As per my understating iterator performs iteration/looping over collection. e.g forEach, for loop, while, do while etc. But I do not what is enumerator.

迭代的关键点就是“迭代/循环”——简单地重复一些东西,例如Newton-Raphson 方法是一种用于逼近平方根的迭代算法,通常使用循环在编程语言中实现。

枚举就是把事情罗列出来,这就是你的“过度收集”的来源。因此 for/in 循环(迭代构造)枚举了一个集合。标准集合都提供返回 NSEnumerator 对象的枚举器,您通常(但并非总是)会在迭代构造中使用这些枚举器来处理集合。

枚举类型,enum,之所以这样称呼是因为它们列出了所有的值,即枚举它们。

因此,您的面试官可能一直希望您通过语言的迭代语句(forwhile 等)声明 Swift/Objective-C 支持迭代。 ),而枚举是由对象/方法提供的,这些对象/方法要么依次返回每个项目(例如 NSArrayobjectEnumerator),要么依次处理每个元素(例如 NSArrayenumerateObjectsUsingBlock:)。 for/in结合了这两者,它是一种迭代构造,它直接使用对象枚举器而不是要求程序员直接使用枚举器。

HTH

关于objective-c - Swift 或 Objective C 中枚举器和迭代器的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51918908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com