Найти в Дзене
28 подписчиков

[it_note] #00 var foo [Java] == var foo [Kotlin] ?


С Java 10 в язык было добавлено ключевое слово (ну не совсем ключевое слово) var, но так же ли оно работает как в Kotlin? Давайте взглянем чуточку подробнее.

В [Kotlin] ключевое слово var применяется для создание изменяемой переменной (в отличие от val). Примеры использования:
> var x: String = "Мысли Mys_ya"
> var y = 42 // в kotlin работает автоматическое привидение типов при создании переменной;

В языке [Java] при создание переменных надо было всегда указывать тип переменной:
> int x = 42;
Но, начиная с версии 10, в языке появилось такое понятие как Local Variable Type Inference (LVTI)  - выведение типа локальной переменной - это есть ключевое слово зарезервированное имя типа var в Java. При использовании в таком виде:
> var x = 42; // Int
var становиться вместо типа данных, т.е. теперь в java при создании переменных необязательно явно указывать тип данных. Но в это случае надо обязательно проводить инициализацию - так тип переменной выводиться (присватывается) не явно, а из того значения, которое ей присватывается.
> var x; // не сработает
> int x; // сработает

Да, Java в android разработке сейчас используется мало, но знать такие нюансы - довольно интересно.)
Пишите в комментарии, знали ли Вы о таком? Стоит ли развить тему LVTI более полно?
#kotlin #java
--- --- ---

Назовём это "проба пера" в написании it-заметок. Примерно в таком коротком формате на разные темы буду появляться посты на моём канале.
Если будет определенное количество вопросов/запросов по какой-либо заметке, то постараюсь написать статью на Дзен (в Дзен пост (короткая запись) и статья (длинная запись с возможностью форматирования) это разные форматы). Иногда буду сам выбирать, в чём бы мне хотелось разобраться подробнее и посвятить этому статью (спойлер, первая на очереди работа с exif данными файла).
[it_note] #00 var foo [Java] == var foo [Kotlin] ?   	С Java 10 в язык было добавлено ключевое слово (ну не совсем ключевое слово) var, но так же ли оно работает как в Kotlin?
1 минута