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

144
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 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