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

139
Views
Lambda val con tipo genérico en Kotlin

Digamos que tengo este typealias Kotlin:

 typealias Checker<T> = (T) -> Unit fun <T> checkNothing(input: T) = Unit fun <T> checkSomething(input: T) = makeSomeAssertion(input) fun <T> doSomethingWithAChecker(checker: Checker<t>) { /* ... */ }

Ahora puedo llamar a doSomethingWithAChecker(::checkNothing) o doSomethingWithAChecker(::checkSomething) , lo cual está bien, pero prefiero definir val con lambdas y el alias de tipo adecuado para que solo haya una instancia:

 val checkNothing: Checker<T> = { Unit } val checkSomething: Checker<T> = { makeSomeAssertion(it) }

Pero, por supuesto, dado que están instanciados, no pueden tener esa T genérica, por lo que tengo que definir un tipo o no puedo pasarlos a doSomethingWithAChecker .

¿Es esto posible sin tipos de conversión?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Las declaraciones de val se pueden envolver en una clase genérica que proporcionaría los tipos de las fichas.

 class Checkers<T> { val checkNothing: Checker<T> = { Unit } val checkSomething: Checker<T> = { makeSomeAssertion(it) } }
over 4 years ago · Santiago Trujillo Report

0

puede usar Any tipo aquí para aceptar cualquier cosa:

 val checkNothing: Checker<Any> = { Unit } checkNothing(123) checkNothing("abc") val checkSomething: Checker<Any> = { makeSomeAssertion(it) } checkSomething(123) checkSomething("abc")

Dado que sus damas aquí son consumidores, puede ser más correcto usar <in Any> en lugar de solo <Any> ; se pueden leer más detalles al respecto en la documentación de referencia de genéricos

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!