目标C中是否有类似于C#的东西yield return
?目标C中有没有类似于C#收益回报的东西
3
A
回答
1
不,在Objective-C中没有任何东西可以让您轻松构建一个可迭代的解决方案。
Objective-C中的fast enumeration一般使用与C#,Java或C++完全不同的机制构建。采用该协议相对而言比较复杂,特别是与C#及其yield return
相比,虽然它确实可行。
我发现Objective C块为快速枚举提供了一个可用的替代方法。考虑实现基于块的枚举而不是快速枚举 - 它允许您使用类似于yield return
的样式编程自己的API。另一方面,您的API的客户端需要提供一个块来使用您的枚举。这并不理想,但可用,特别是对于复杂的枚举器,例如基于树的枚举器。
+0
使用块代替yield的好处还有很多,因为回调可以包含更多,然后只包含返回的项目。 –
3
有没有直接和,如dasblinkenlight提到,fast enumeration
存在,但是有很大的不同。
迈克·阿什在2009年把这个问题上,并与发电机的实现(类似的概念)想出了:
http://www.mikeash.com/pyblog/friday-qa-2009-10-30-generators-in-objective-c.html
运行巫术的整齐漂亮一点,但我不一定会建议采用它仅仅是因为它使设计模式与底层系统非常相似;在生产环境中使用维护和学习曲线的成本将非常陡峭。
相关问题
- 1. 在C++(或C++ 11)中是否有类似于c#的东西?
- 2. Objective-C中有没有和JOptionPane类似的东西?
- 3. C#中有没有类似可扩展队列的东西?
- 4. C#中是否有类似于java.lang.Class的东西?
- 5. 在C++中是否有类似于typeof的东西?
- 6. 在Objective-C中是否有类似于LINQ的东西?
- 7. 在C#中fflush()从C中有类似的东西吗?
- 8. 有没有类似于.NET中的Qt :: QueuedConnection的东西?
- 9. Android Xamarin中有没有类似于UIScrollVIew的东西?
- 10. Java世界中有没有类似于WPF和MVVM的东西?
- 11. jQuery中有没有类似于Dojo GFX的东西?
- 12. AngularJS中有没有类似于“KO.mapping.fromJS”的东西?
- 13. 有没有类似于mongo.model()的东西;在DynamoDB中...?
- 14. Python中有没有类似于quantstrat的东西?
- 15. 有没有类似于redis中“使用”sql命令的东西?
- 16. 在C#中列出类似于C++中的vector.reserve(n)的东西
- 17. 在C++ 11之前是否有类似于std :: function的东西?
- 18. java有一些类似于C#属性的东西吗?
- 19. Python有类似于.net c#PInvoke的东西吗?
- 20. 类似的东西没有使用JavaScript?
- 21. Objective-C有类似C++虚函数的东西吗?
- 22. WPF - 有没有类似于PathCompactPath的东西?
- 23. NSUserDefaults/SharedPreferences我们有没有类似于TypeScript的东西
- 24. 有没有类似于Maven Cargo但AppAssembler的东西?
- 25. Django有没有类似于spring web flow的东西?
- 26. C有没有像IDLE(python)的东西?
- 27. C有没有像PHP ob_start的东西?
- 28. c有scanf,python有类似的东西吗?
- 29. Java中有没有类似Internal类的东西?
- 30. 有没有类似于C的IRB?
接受挑战。 –
可能的重复[Objective-C中有没有与C#的yield关键字并行](https://stackoverflow.com/questions/2805837/is-there-any-parallel-in-objective-c-to-cs-yield关键字) –