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

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

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