Comments 20
Все переменные которые указываются через val нельзя изменять
Это что за переменная, которую нельзя менять?!
val и var - это 2 способа обьявить переменную. Для Kotlin val - это final переменная, которая не может быть изменяемая. Ее можно только инициализировать и использовать.
На практике - это структура довольно удобная может быть. К примеру если хотите создать какую-то модель данных или список моделей в одной переменной, которая по логике не должна изменяться ее лучше инициализировать через VAL, нежели VAR.
Спасибо большое за комментарий!)
не бывает переменных, которые не могут быть изменяемы. Если не изменяется, то это константа, а не пере-мен-ная. Но это так сказать логический косяк от авторов Котлина.
Чето угарнул с комментариев. Анекдот вспомнился не очень приличный:
Затеял мужик капитальный ремонт и нанял под это дело двух рабочих - вроде нормальные, не бухают. Приезжает через две недели домой принимать работу, ходит - ну просто идеально всё сделано, не придерешься.
Заходит в туалет, а там унитаз к потолку привинчен!
Он, естественно: это чё за хуня?
А работяга ему: эй, погоди ругаться, вот смотри! - разбегается, отталкивается от стены, хватается за края унитаза руками, подтягивает к нему свою пятую точку и начинает испражнятся. Моча и кал, естественно, валятся сквозь ноги вниз, падают ему на спину, грудь и лицо, он отпускает руки, шлёпается в кучу собственных фекалий и говорит:
- Действительно, Вася, плохо сделали - надо подправить.
А вообще, напишите в JetBrains - мол, ребят, сделали плохо, подправить надо
У вас через val может быть объявлена вполне себе переменная, например ссылка на MutableList или ByteArray. Разница между var и val в изменяемости ссылки.
И от авторов Свифта тогда тоже. Из официальной документации Swift:
Swift uses variables to store and refer to values by an identifying name. Swift also makes extensive use of variables whose values can't be changed. - "Свифт использует переменные, чтобы сохранять и ссылаться на значения по имени. Свифт также активно использует переменные, значения которых не могут быть изменены."
Может быть, если весь мир не прав, а вы правы, стоит задуматься?
"...переменная, которая не может быть изменяемая..." Если заменить словом "константа", то будет короче. :-)
PS "...Ну а покойники, бывшие люди, —
Смелые люди и нам не чета...."
Поправьте, меня если я не прав, но котлин вроде был надстройкой над явой. И по этому любой исходник на котлине имеет ява представление. И выполняется всё это на ява-машине.
Т.е. котлин это такой синтаксический сахар для явы на максималках.
По такой логике C++ это синтаксический сахар для C
Изначально Котлин так и задумывался, но сейчас это уже давно не так. Во-первых, существует Kotlin Native. Это технология, которая позволяет кастомным компилятором собирать исходники на Kotlin в нативные бинарники. Благодаря ей можно писать приложения для iOS, например. Можно конечно писать и для винды или линукса, как на C, но это не очень популярный способ)
Есть ещё Kotlin JS, транспилятор, который преобразует код на котлине в код на JS, и Kotlin WASM, который может исполнять код на котлине в браузере при помощи WebAssembly.
К сожалению, тут хочется поправить скорее автора статьи
Kotlin копилируется в байткод для Java-машины, но не сначала в Java, а затем в байткод.
Но в Java можно транспилировать, как и обратно. Но будет не идеально.
Нет, Котлин обратно совместим с явой за счёт компиляции кода в промежуточный ява байт код, что позволяет выполнить и ява код на котлине и котлин на яве и тем самым запускать котлин на jvm
"Функция - это блок, который может выполнять одно конкретное действие, которое Вы укажите."
Во-первых, в Котлине, как и в Джаве, функции принято называть методами. Во-вторых, если функция действительно содержит одно конкретное действие в одну строку, то её можно записать сокращенным синтаксисом без фигурных скобок и return. В-третьих, количество действий в функциях не ограничено. Рекомендовано, чтобы они не превышали 20 строк и были объединены общей целью ведущей к конкретному результату. Чаще всего они представляют из себя блок кода, а не одну строку или действие в одну строку.
Поэтому советую дополнить блок по функциям в статье с дополнительными примерами. Другие дополнения уже дали выше.
метод - функция, в которой первым параметром является указатель на объект.
Во-первых, в Котлине, как и в Джаве, функции принято называть методами
Не помню как в java, но в kotlin можно объявлять просто функции на уровне пакета. Разница между методом и функцией в том, что метод принадлежит какому-либо классу и имеет доступ к его состоянию (помимо глобального если оно есть)
Орфографических и смысловых ошибок, у вас, конечно, хватает с пренебрежением))
А почему статья в хабе $mol находится?
Kotlin для Самых маленьких