Kotlin向我发送此错误:For循环范围必须具有“ iterator()”方法

时间:2018-11-23 15:47:28

标签: kotlin

data class precioSuper(var producto:String, var precio: Int, val codigoDeBarras:String)

fun main(args: Array<String>) {
    //Qué vende o super?
    val galletas = precioSuper("galletas", 3, "0001")
    val chocolate = precioSuper("chocolate", 5, "0002")
    val leite = precioSuper("leite", 2, "0003")

    var productos = arrayListOf<String>("galletas", "chocolate", "leite")

    var totalProductos = productos.size
    var codigoDeBarras2 = for(producto in totalProductos)

}

在代码var codigoDeBarras2 = for(totalProductos中的producto)的科特琳的车道上,向我发送此错误:“ For循环范围必须具有'iterator()'方法”

错误恰好在“ totalProductos”中“ for( totalProductos 中的producto”)

2 个答案:

答案 0 :(得分:4)

错误是您正在将for循环分配给变量。
for 不是表达式,因此无法分配。
同样,将producto in totalProductos视为totalProductos时,表达式Collection毫无意义,而只是一个整数。
如果要遍历列表productos的项目,可以执行以下操作:

for (producto in productos) {
    //..............
}

for (i in 0 until totalProductos) {
    //..............
}

productos.forEach { 

}

答案 1 :(得分:0)

假设您要尝试“提取” producto列表的productos属性。那你可以试试

var codigoDeBarras2 = productos.map { it.producto }