目標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關鍵字) –