У меня есть следующий код на PHP public static $bitValueTable = null;
, и я хочу преобразовать его в Kotlin. Моя переменная представляет собой нулевой массив на первом этапе, но я добавляю некоторое значение после запуска программы.
как я могу преобразовать?
Я пытаюсь преобразовать один проект PHP в Kotlin, и я хочу, чтобы в обоих было все одинаково. этот массив зависит от пользователей и используется в нескольких местах, поэтому я не знаю, когда он создается.
По умолчанию любая переменная в kotlin не может содержать нулевые значения, но тем не менее вы можете создать объект, допускающий значение null, с помощью оператора ?
, для лучшего понимания проверьте ниже url
https://kotlinlang.org/docs/reference/null-safety.html.
Итак, чтобы создать массив с нулевым значением, используйте синтаксис ниже
var myTypeArray: Array<type>? = null // check below example
var myStrArray: Array<String>? = null
Документация по массивам Kotlin
Спасибо
спасибо за ответ, но есть статическое ключевое слово. как я могу справиться с этим?
Строго говоря, в Котлине нет статических членов. Вместо этого следует использовать сопутствующий объект.
В kotlin вы можете использовать объекты, допускающие значение NULL, с оператором безопасного вызова «?».
Теперь у вас есть статическая переменная в PHP, в kotlin нет «статической» как таковой, однако объект-компаньон {} выполняет ту же функцию.
Таким образом, эквивалент public static $bitValueTable = null;
в котлине это:
companion object {
var bitValueTable : Array<Type>? = null
}
Наблюдения:
Зачем вам нужен массив
null
? Вероятно, ваш код можно было бы переписать таким образом, чтобы он вам не нужен, возможно, используя пустой массив или отложив создание переменной до тех пор, пока у вас не будет значения.