Java 에서처럼 배열을 어떻게 만들 수 있습니까?
int A[] = new int[N];
Kotlin에서 어떻게 할 수 있습니까?
답변:
참조 에 따르면 배열은 다음과 같은 방식으로 생성됩니다.
자바의 기본 유형의 구별 유형이있다 IntArray, DoubleArray저장 등 언 박싱 값.
해당 생성자와 팩토리 함수로 생성됩니다.
val arrayOfZeros = IntArray(size) //equivalent in Java: new int[size]
val numbersFromOne = IntArray(size) { it + 1 }
val myInts = intArrayOf(1, 1, 2, 3, 5, 8, 13, 21)
첫 번째는 Java와 유사하며 기본값으로 채워진 기본 배열을 생성합니다 (예 : 0 for Int, falsefor) Boolean.
기본이 아닌 배열은 항목 유형이있는 Array<T>클래스 로 표시됩니다 T.
T여전히 자바에서 기본 유형 중 하나가 될 수 있습니다 ( Int, Boolean, ...)하지만, 값은 내부 자바에 동등 박스 될 것이다 Integer, Double등등.
또한, T모두가 될 수 널 (NULL) 및 비 - 널 좋아 String하고 String?.
유사한 방식으로 생성됩니다.
val nulls = arrayOfNulls<String>(size) //equivalent in Java: new String[size]
val strings = Array(size) { "n = $it" }
val myStrings = arrayOf("foo", "bar", "baz")
val boxedInts = arrayOfNulls<Int>(size) //equivalent in Java: new Integer[size]
val boxedZeros = Array(size) { 0 }
Array<Int>(size)컴파일되지 않습니다. 요소를 제공하지 않고는 nullable이 아닌 배열을 만들 수 없기 때문입니다.
Kotlin에서 크기 N의 IntArray를 만드는 것은 간단합니다. IntArray(n)핫키의 답변에 자세히 설명 된대로 또는 적절한 유형을 사용하십시오 .
고정 크기 배열을 사용할 때 Kotlin Destructuring을 사용할 수 있습니다.
// Create fixed sized array
val point = IntArray(2)
// Access values directly
val (x, y) = point
이 경우 x인덱스 0, y인덱스 1 등에서 가져옵니다 .
int있지만, Objects의 경우 stackoverflow.com/questions/32679060/…이 있습니다.