当前位置: 代码迷 >> Android >> For循环范围必须具有“ iterator()”方法
  详细解决方案

For循环范围必须具有“ iterator()”方法

热度:41   发布时间:2023-08-04 12:30:46.0

我那里有这个奇怪的错误

val limit: Int = applicationContext.resources.getInteger(R.integer.popupPlayerAnimationTime)
for(i in limit) {

}

我找到了关于该错误的类似答案,但没有人为我工作

如果您使用:

for(item in items)

items需要一个iterator方法; 您正在遍历对象本身。

如果要迭代范围内的int,则有两个选择:

for(i in 0..limit) {
    // x..y is the range [x, y]
}

要么

for(i in 0 until limit) {
    // x until y is the range [x, y>
}

这两种创建IntRange ,延伸IntProgression ,它实现了Iterable 如果使用其他数据类型(即float,long,double),则相同。


供参考,这是完全有效的代码:

val x: List<Any> = TODO("Get a list here")
for(item in x){}

因为List是一个Iterable。 Int不是,这就是为什么您的代码不起作用的原因。

  相关解决方案