Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

191
Views
Pasar un parámetro perezoso a la función

Tengo una función que necesita llamar a otra función para que funcione. Quiero retrasar la segunda llamada de función hasta que sea necesario. La razón es que a veces no se necesita la segunda llamada de función.

El código se ve así:

 suspend fun doWork(list: List<A>) { if(list.isEmpty()) return secondFunction() }

Sin embargo, secondFunction() tiene que ser determinado por la persona que llama a la función. ¿Hay alguna manera de hacer esto tal vez usando lambda?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Podría intentar usar una lambda para retrasar la ejecución de su segunda función hasta que necesite el valor.

 suspend fun doWork( list: List<A>, lambdaFunction: suspend () -> Unit ) { ... lambdaFunction() }

O puede hacer que devuelva un valor.

 suspend fun doWork( list: List<A>, lambdaFunction: suspend () -> String ) { ... val result = lambdaFunction() }

Lo llamarías así:

 doWork( list = list, lambdaFunction = { secondFunction() } )

También lo hice suspend porque te vi usando suspend . No tienes que usar suspend .

over 4 years ago · Santiago Trujillo Report

0

Lo que parece que quieres se puede resolver a través del Observer Pattern

Te mostraré en rxKotlin

 val subject = PublishSubject.create<Observable<List<A>>>() subject.subscribeBy( onNext = { doWork(it) }, onError = { it.printStackTrace() }, onComplete = { println("Done!") } )

Y cuando la lista esté lista.

 subject.oNext(list)

Se llamará a la función doWork y no necesita bloquear el uso de secondFunction ya que la lista contendrá los valores.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!