arrays - example - list kotlin
Kotlin: For-loop debe tener un método iterador, ¿es esto un error? (2)
Su ArrayList
es de tipo anulable. Entonces, tienes que resolver esto. Hay varias opciones:
for (p2 in list.orEmpty()) { ... }
o
list?.let {
for (p2 in it) {
}
}
o simplemente puedes devolver una lista vacía
public fun findSomeLikeThis(): List<T> //Do you need mutable ArrayList here?
= (Db4o.objectContainer()!!.queryByExample<T>(this as T) as Collection<T>)?.toList().orEmpty()
Tengo el siguiente código:
public fun findSomeLikeThis(): ArrayList<T>? {
val result = Db4o.objectContainer()!!.queryByExample<T>(this as T) as Collection<T>
if (result == null) return null
return ArrayList(result)
}
Si llamo a esto como:
var list : ArrayList<Person>? = p1.findSomeLikeThis()
for (p2 in list) {
p2.delete()
p2.commit()
}
Me daría el error:
El rango for-loop debe tener un método ''iterator ()''
¿Me estoy perdiendo de algo?
También me enfrento a este problema cuando hago un bucle sobre algo que no es una matriz.
Ejemplo
fun maximum(prices: Array<Int>){
val sortedPrices = prices.sort()
for(price in sortedPrices){ // it will display for-loop range must have iterator here (because `prices.sort` don''t return Unit not Array)
}
}
Este es un caso diferente a esta pregunta, pero espero que ayude