Computer >> 컴퓨터 >  >> 프로그램 작성 >> Android

구체화된 키워드는 Kotlin에서 어떻게 작동합니까?

<시간/>

"정화" Kotlin 개발자가 런타임에 클래스와 관련된 정보에 액세스하는 데 도움이 되는 특수한 유형의 키워드입니다. "정화" 인라인에서만 사용할 수 있습니다. 기능. "신체화"할 때 키워드가 사용되면 컴파일러는 함수의 바이트 코드를 함수가 호출된 코드의 모든 섹션에 복사합니다. 이런 식으로 제네릭 유형 T는 인수로 얻는 값의 유형에 할당됩니다.

예시

이 예에서 우리는 "물화"하는 방법을 볼 것입니다. 전달되는 인수에 관계없이 코드를 재사용하고 동일한 기능을 사용하여 유사한 종류의 작업을 수행하는 데 도움이 됩니다.

이 예에서는 인라인 함수를 만들고 일반 "reified" 인수 T 및 main() Kotlin에서는 myExample()을 호출합니다. 다른 인수로 여러 번.

// Declaring Inline function
inline fun <reified T> myExample(name: T) {
   println("\nName of your website -> "+name)
   println("\nType of myClass: ${T::class.java}")
}

fun main() {

   // calling func() with String
   myExample<String>("www.tutorialspoint.com")

   // calling func() with Int value
   myExample<Int>(100)

   // calling func() with Long value
   myExample<Long>(1L)

}

출력

다음 출력을 생성합니다 -

Name of your website -> www.tutorialspoint.com

Type of myClass: class java.lang.String

Name of your website -> 100

Type of myClass: class java.lang.Integer

Name of your website -> 1

Type of myClass: class java.lang.Long