Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

142
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda