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

时间:2018-09-16 17:20:11

标签: android kotlin

我那里有这个奇怪的错误

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

}

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

1 个答案:

答案 0 :(得分:8)

如果您使用:

ä

ä需要一种for(item in items) 方法;您正在遍历对象本身。

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

items

iterator

这两个方法都创建了一个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。如果您使用其他数据类型(即float,long,double),则相同。


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

IntProgression

因为Iterable是可迭代的。 val x: List<Any> = TODO("Get a list here") for(item in x){} 不是,这就是为什么您的代码不起作用的原因。