Kotlin – “forEachIndexed”和“for”循环之间的区别

我很困惑这些方法的优点和缺点(假设我需要使用indexproduct ):

 products.forEachIndexed{ index, product -> ... } for ((index, product) in products.withIndex()) { ... } 

这里的products是一个简单的集合。

是否有任何表现/最佳实践/等论点比较喜欢一个?

One Solution collect form web for “Kotlin – “forEachIndexed”和“for”循环之间的区别”

不,他们是一样的。 您可以阅读forEachIndexed和withIndex的来源。

 public inline fun  Iterable.forEachIndexed(action: (index: Int, T) -> Unit): Unit { var index = 0 for (item in this) action(index++, item) } public fun  Iterable.withIndex(): Iterable> { return IndexingIterable { iterator() } } 

forEachIndexed使用本地var来计数索引,而withIndex为迭代器创建一个装饰器,它也使用var来计数索引。 从理论上讲,用withIndex创建一个包装层,但性能应该是一样的。

  • 在Java中调用Kotlin时如何省略构造函数参数的默认值?
  • Koltingenerics声明 - 站点方差构造
  • Kotlin代码如何在Android应用程序中执行,与Java有什么不同?
  • 什么代表Kotlin中的arrayOfNulls?
  • 使用Kotlin将图像从ImageView传递给Android中的另一个Activity
  • Kotlin集合图导致“types检查已经运行成Kotlin递归”错误
  • 在Kotlin中使用传递给分支条件的参数?
  • 如何使用kotlin显示在recyclerview中选择的单个项目
  • 我如何使用Kotlin.js中的Redux / React?
  • 我可以使用Java扩展一个Kotlin授权类吗?
  • Kotlin中的列表或数组的产品
  • Kotlin language will be the best programming language for Android.