Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

167
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!