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

165
Visualizações
Por qué usar 'en línea' cuando se usa un tipo 'reificado'

Todos los tutoriales que leí sobre la reificación de tipos dicen que necesitamos usar 'en línea' cuando usamos 'reificado', pero ninguno de ellos explica por qué.

Digamos que tengo una función:

 inline fun <reified T> doSomething(value: T) { println("Doing something with type: ${T::class.simpleName}") }

Según tengo entendido, el uso de 'reificado' evita el borrado de tipos. Entonces, ¿por qué no podemos usarlo en una función normal no en línea? El uso de inline hará que el compilador copie el cuerpo de la función anterior en los sitios de llamadas. Pero, ¿por qué necesitamos que eso suceda?

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

0

Los tipos cosificados no son mágicos: el borrado de tipos sigue ocurriendo como de costumbre. Entonces, ¿cómo funcionan los tipos cosificados? Bueno, digamos que llamo:

 doSomething("Foo")

El compilador calcula que T es String . Y puede traducir directamente la línea anterior a:

 println("Doing something with type: ${String::class.simpleName}")

Por lo tanto, a nivel de superficie, parece como si el tipo estuviera cosificado, pero en realidad, el tipo solo está alineado. Esta es también la razón por la cual la función debe estar inline . Si no está en inline , el compilador no puede insertar en línea el parámetro de tipo.

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