Переменные в Котлине, отличия от Java. var vs val?

Я пытаюсь узнать Kotlin . Я хочу знать, что такое val , var и internal в Kotlin по сравнению с java .

В java: –

  RadioGroup radioGroup; RadioButton button; Button submit; 

После преобразования это показывает: –

  internal var radioGroup: RadioGroup internal var button: RadioButton internal var submit: Button 

val и var – это два ключевых слова, которые вы можете использовать для объявления переменных (и свойств). Разница заключается в том, что использование val дает вам переменную только для чтения, что совпадает с использованием ключевого слова final в Java.

 var x = 10 // int x = 10; val y = 25 // final int y = 25; 

Использование val когда вы можете, это соглашение в Котлине, вы должны сделать только что-нибудь var если знаете, что где-то будете менять его значение.

См. Официальные документы об определении локальных переменных и объявлении свойств .


internal – это модификатор видимости, который не существует в Java, он отмечает член класса, который будет отображаться только внутри модуля, в котором он находится. Это аналогичная видимость того, что видимость package по умолчанию дает вам на Java (вот почему конвертер будет использовать его при преобразовании элементов с видимостью package ), однако это не совсем то же самое. Также обратите внимание, что это не стандартная видимость в Kotlin, классы и их члены в Kotlin являются public по умолчанию.

Больше в документах о модификаторах visiblity .

val : неизменная переменная данных

var : изменяемая переменная данных

Когда вы преобразовали код Java в kotlin:

  1. конвертер обнаружил, что у вас нет инициализированных переменных, поэтому он сделал их var (mutable), поскольку вы их инициализируете позже.

  2. вероятно, ваши переменные не используются, поэтому конвертер сделал их внутренними угадываниями, вы не будете использовать их вне своего пакета.

Для получения дополнительной информации о var и var читайте это , а для internal читайте это .

  • SocketException: сбой sendto: EBADF (дескриптор Bad файла)
  • Android открыта для поиска программно
  • Использование Retrofit + OkHttp + Gson api возвращает html, хотя postman return json
  • Элементы типа «subs» не могут быть использованы. response: -1010: Неправильная попытка потребления
  • Получите множественное число и сингл от блока Chrono Time
  • Импорт не используется в Android Studio
  • Функция Котлина: Требуемая единица измерения? Найдено Int
  • Kotlin уменьшает функцию для 2d-списка, не работающего
  • Использование @JvmOverloads Kotlin с шаблоном Fragment.newInstance () Android
  • Как использовать привязку данных и Kotlin в Android Studio 3.0.0
  • Вытягивание данных из API с помощью okHTTP и GSON
  • Давайте будем гением компьютера.