IT박스

Kotlin과 Java의 String []은 무엇입니까?

itboxs 2020. 7. 10. 08:10
반응형

Kotlin과 Java의 String []은 무엇입니까?


Kotlin이 Java에 ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArray해당하는 것을 알았습니다 byte[], short[], int[],char[], double[], float[].

이제 궁금 StringArray합니다 .Java와 동등한 것이 String[]있습니까?


에 대한 특별한 경우가 없습니다 String때문에, String과는 대조적으로, JVM에 일반 참조 타입 자바 프리미티브 ( int, double, ...) - 참조에 저장하는 것이 Array<T>필요 같은 객체로 권투 IntegerDouble . IntArrayKotlin 과 같은 특수 배열의 목적은 비 복제 프리미티브를 저장하여 복싱 및 언 박싱 오버 헤드를 제거하는 것입니다 ( int[]대신 Java와 동일 Integer[]).

Java 와 동등한 Array<String>(및 Array<String?>nullables)을 사용할 수 있습니다 String[].

val stringsOrNulls = arrayOfNulls<String>(10) // returns Array<String?>
val someStrings = Array<String>(5) { "it = $it" }
val otherStrings = arrayOf("a", "b", "c")

참조 : 언어 참조의 배열


사용 arrayOf , arrayOfNulls , emptyArray

var colors_1: Array<String> = arrayOf("green", "red", "blue")
var colors_2: Array<String?> = arrayOfNulls(3)
var colors_3: Array<String> = emptyArray()

박스형이 아닌 프리미티브의 배열을 만들 수 있도록 이러한 유형이 있습니다. String은 Java의 기본 요소가 아니기 때문에 Array<String>Kotlin에서 Java와 동등한 것으로 사용할 수 있습니다 String[].


Array of StringsKotlin 에서 공란을 만들려면 다음 6 가지 방법 중 하나를 사용해야합니다.

첫 번째 접근법 :

val empty = arrayOf<String>()

두 번째 접근법 :

val empty = arrayOf("","","")

세 번째 접근 방식 :

val empty = Array<String?>(3) { null }

네 번째 접근 방식 :

val empty = arrayOfNulls<String>(3)

다섯 번째 접근법 :

val empty = Array<String>(3) { "it = $it" }

여섯 번째 접근 방식 :

val empty = Array<String>(0, { _ -> "" })

의 경우 Strings다른 유형과, 당신은 단지 사용 Array<*>. 그 이유 IntArray와 다른 것들도 오토 박싱을 막기 위해서입니다.

그래서 int[]관련 IntArray곳에 Integer[]관련 Array<Int>.


이 예제는 Android에서 완벽하게 작동합니다.

kotlin에서는 람다 식을 사용할 수 있습니다. 코 틀린 배열 생성자 정의는 다음과 같습니다.

Array(size: Int, init: (Int) -> T)

다음으로 평가됩니다.

skillsSummaryDetailLinesArray = Array(linesLen) {
        i: Int -> skillsSummaryDetailLines!!.getString(i)
}

또는:

skillsSummaryDetailLinesArray = Array<String>(linesLen) {
        i: Int -> skillsSummaryDetailLines!!.getString(i)
}

이 예에서 필드 정의는 다음과 같습니다.

private var skillsSummaryDetailLinesArray: Array<String>? = null

도움이 되었기를 바랍니다


당신도 사용할 수 있습니다 :

val frases = arrayOf("texto01","texto02 ","anotherText","and ")

예를 들어.

참고 URL : https://stackoverflow.com/questions/44239869/whats-the-kotlin-equivalent-of-javas-string

반응형