Array(0, {i -> ""})
현재 사용 하고 있으며 다음과 같은 더 나은 구현이 있는지 알고 싶습니다.Array()
또한을 사용 arrayOfNulls<String>(0) as Array<String>
하는 경우 컴파일러는이 캐스트가 결코 성공할 수 없음을 경고합니다. 그러나 내부의 기본 구현 Array(0, {i -> ""})
입니다. 내가 뭔가를 놓친 건가요?
답변:
늦게 (2015 년 6 월) Kotlin 표준 라이브러리 기능이 있습니다.
public fun <T> arrayOf(vararg t: T): Array<T>
따라서 빈 문자열 배열을 만들려면 다음과 같이 작성할 수 있습니다.
val emptyStringArray = arrayOf<String>()
IntArray
어떻습니까? 지금 사용 arrayOf<Int>().toIntArray()
하고 있습니다. 더 좋은 방법이 있습니까?
java.lang.ArrayIndexOutOfBoundsException:
예외가 발생했습니다.
T
대신 이면 어떻게 String
됩니까?
java.lang.ArrayIndexOutOfBoundsException:
어떻게 사용할 수 있습니까?
0
! 따라서 데이터를 저장하지 않으려는 매우 특별한 목적을 위해서만 유용 합니다 (단지 type ). 사용하여 Array(length){""}
원하는 포함 length
. 자세한 내용은 아래 내 대답을 참조하십시오.
null
? 그게 질문입니다!의 배열을 만들려면 null
간단히 arrayOfNulls<Type>(length)
.
그러나 size 의 빈 배열 을 생성 length
하려면 다음을 사용하십시오.
val arr = Array(length) { emptyObject }
참고 사항은 각 데이터 유형별 로 적절하게 정의 해야 한다는 것입니다emptyObject
(원하지 않기 때문에 null
). 예. 대한 String
의, emptyObject
수 있습니다 ""
. 그래서:
val arr = Array(3) { "" } // is equivalent for: arrayOf("","","")
다음 은 실제 예 입니다. 프로그램은 기본적으로 두 개의 샘플 인수로 실행됩니다.
널 배열
var arrayString=Array<String?>(5){null}
var nullArray= arrayOfNulls<String>(5)
빈 배열을 만드는 두 가지 방법, 람다없이 두 번째 방법을 찾았습니다.
var arr = Array (0, { i -> "" })
var arr2 = array<String>()
Kotlin의 null 문자열에 대해서는 허용되지 않습니다. String 을 사용해야 합니까? 문자열이 널이되도록 허용하는 유형입니다.