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

238
Visualizações
Una pregunta sobre el tipo de función de Kotlin cast

Fragmento de código en Kotlin

 public actual fun <R, T> (suspend R.() -> T).createCoroutineUnintercepted( receiver: R, completion: Continuation<T> ): Continuation<Unit> { val probeCompletion = probeCoroutineCreated(completion) return if (this is BaseContinuationImpl) create(receiver, probeCompletion) else { createCoroutineFromSuspendFunction(probeCompletion) { (this as Function2<R, Continuation<T>, Any?>).invoke(receiver, it) } } }

Lo que quiero saber es cómo (suspend R.() -> T) AKA Function Type puede reconocerse como BaseContinuationImpl que es un Classify Type de clasificación incluso para emitir como 'Función2'.

Cualquier ayuda será apreciada.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

No hay tipos de funciones y tipos de clases separados. Los tipos de función son solo tipos que se pueden ejecutar con argumentos específicos y un tipo de retorno específico. Son intercambiables con las interfaces Function0 , Function1 , etc. y contienen una única función de invoke() .

Podemos implementar un tipo de función por nuestra clase:

 class MyClass : (suspend () -> Unit) { override suspend fun invoke() {} }

Ahora, obtengamos este código:

 val lambda: (suspend () -> Unit) = {}

Después de desmontar, vemos que nuestra lambda se compila en:

 final class FooKt$foo$lambda$1 extends kotlin/coroutines/jvm/internal/SuspendLambda implements kotlin/jvm/functions/Function1 { ... public final invoke(Ljava/lang/Object;)Ljava/lang/Object; ... }

Extiende SuspendLambda que es un subtipo de BaseContinuationImpl . También implementa Function1 y contiene la función de invoke , lo que la convierte en un tipo de función.

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