2017-10-23 4 views

답변

3

예, Kotlin도 기본 요소를 사용합니다. 대한

  1. 이유를 "덜 오류가 발생하기 쉬운"정말 코 틀린에 적용되지 않습니다 :하지만주의하면 (단지 프리미티브 같은)이 요청하지 않는 한 박스 유형이 널 (NULL)이 아니며 당신은 할 수 없습니다 혼동 ==equals.

  2. "더 읽기 쉽습니다."두 연산자 모두 사용할 수 있습니다.

  3. "더 효율적인"부분이 많이 적용되지만 링크 된 질문의 맨 위 대답에 언급 된 한 자의 인쇄상의 오류를 만들 수 없습니다. 박스형을 얻으려면 java.lang.Long을 작성해야합니다! 한편

, 당신은 IntArray이에도 불구하고 Array<Int> (자바 int[]java.lang.Integer[]에 대응)보다 더 효율적있는 두 Int를 사용하여 나타나는 알고 있어야합니다.

2

인용 docs :

유형 중 일부는 특별한 내부 표현 할 수 있습니다 - 예를 들어, 숫자, 문자 및 논리 값이 런타임시 기본 값으로 표현 될 수있다 - 그러나 사용자에게 그들이 평범한 모습을 수업. 이 섹션에서는 숫자, 문자, 부울, 배열 및 문자열과 같은 Kotlin에서 사용되는 기본 유형을 설명합니다.

그래서 예, 컴파일러는 JVM primitive types이 런타임에 사용되는 방식으로 최적화합니다. 물론 예외가 있습니다 :

null이 가능한 숫자 참조 (예 : Int?)가 필요하거나 제네릭이 필요하지 않으면 Java 플랫폼에서 숫자가 실제로 JVM 기본 유형으로 저장됩니다. 후자의 경우 숫자는 박스로 표시됩니다.

소스 문서에도 힌트가 있습니다. Int :

부호있는 32 비트 정수를 나타냅니다. JVM에서는,이 형태의 nullable가 아닌 값은, 원시 형 int의 값으로서 표현됩니다.