Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

302
Vistas
Why does ide say "Value captured in a closure" when using Iterable.flatMap but doesn't when using map then flatten in kotlin?
inline fun <T : Any, E : Any> batchQuery(
    paramsToBeChunked: Collection<T>,
    batchSize: Int = 500,
    crossinline queryAction: (params: Collection<T>) -> List<E>
) = paramsToBeChunked.chunked(batchSize).flatMap { queryAction(it) } 

enter image description here

inline fun <T : Any, E : Any> batchQuery(
    paramsToBeChunked: Collection<T>,
    batchSize: Int = 500,
    crossinline queryAction: (params: Collection<T>) -> List<E>
) = paramsToBeChunked.chunked(batchSize).map { queryAction(it) }.flatten()

enter image description here

Is there any potential problem when using flatMap?

IMHO, map, flatten, flatMap are all inline functions, so these two implementations are equivalent, is this right?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

If the fun wasn't inline then in both cases queryAction would have to be captured in a closure, because it's coming from outside of the lambda. It means that a class which is generated under the hood holds a reference to the variable, and when the lambda is eventually executed, it uses that reference.

But here, it's inlined just fine. Idea tries it's best to give information about captured variables but in this situation it might be a limitation of Idea's static analysis. The first message is just incorrect.

As @broot suggested, you can replace .map { f(it) } with just .map(f).

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda