Подтвердить что ты не робот

Как создать пустой массив в котлин?

В настоящее время я использую Array(0, {i -> ""}), и я хотел бы знать, есть ли более эффективная реализация, такая как Array()

плюс, если я использую arrayOfNulls<String>(0) as Array<String>, компилятор предупредит меня, что этот прилив никогда не будет успешным. Но это реализация по умолчанию внутри Array(0, {i -> ""}). Я что-то пропустил?

4b9b3361

Ответ 1

По состоянию на конец (июнь 2015 г.) существует стандартная библиотечная функция Kotlin

public fun <T> arrayOf(vararg t: T): Array<T>

Итак, чтобы создать пустой массив строк, вы можете написать

val emptyStringArray = arrayOf<String>()

Ответ 2

Для справки также есть emptyArray. Например,

var arr = emptyArray<String>()

См

Ответ 3

нулевой массив

var arrayString=Array<String?>(5){null}
var nullArray= arrayOfNulls<String>(5)

Ответ 4

Пусто или null?

Чтобы создать массив с null, просто используйте arrayOfNulls<Type>(length).


Но чтобы сгенерировать пустой массив length size, используйте:

val arr = Array(length) { emptyObject }

Примечание: вы должны правильно определить emptyObject для каждого типа (потому что вам не нужны null). Например для String emptyObject может быть "". Так:

val arr = Array(3) { "" }  // is equivalent for: arrayOf("","","")

Вот живой пример. Обратите внимание, что по умолчанию программа запускается с двумя примерами аргументов.

Ответ 5

Я нашел два способа создания пустого массива, второй - без лямбда:

var arr = Array (0, { i -> "" })
var arr2 = array<String>()

Что касается нулевых строк Kotlin, это недопустимо. Вы должны использовать String? введите, чтобы строки были пустыми.

Ответ 6

Использование:

@JvmField val EMPTY_STRING_ARRAY = arrayOfNulls<String>(0)

Возвращает массив строк размером 0, инициализированный нулевыми значениями.

1. Неправильно:

@JvmField val EMPTY_STRING_ARRAY = emptyArray<String>()

Возвращает arrayOfNulls<String>(0)

2. Неправильно:

 @JvmField val EMPTY_STRING_ARRAY = arrayOf<String>()

Возвращает массив, содержащий строки.

Ответ 7

Как упоминалось выше, вы можете использовать IntArray(size) или FloatArray(size).