О да. Очень крутой канал. Подписка, Лайки и комментарии обещаю. Это конкретно видео, пускай и не полное, но оно поможет быстро освежить память, если долго не работал с этим яп или понять суть, если новичок. С уважением, спасибо.
Застопорился на Null-safety. Объекты определены как val(ue), при этом до того утверждается, что val(ue) - неизменяемые объекты. В примере же показано, что вполне себе изменяемые, но без объяснения этой особенности. Сама концепция понятна. Если объект может быть неинициализирован, то возвращается некое значение по умолчанию для соответствующего метода.
Не путай инициализацию и изменение значения. В примере на видео я сначала создаю val, а уже потом его инициализирую, это не нарушает правила val. Изменять потом я это значение конечно не могу
val это просто неизменяемая ссылка. Ты одной переменной, объявленной с ключевым словом val можешь присвоить один раз ссылку на какой-то объект (экземпляр класса) и всё. Нет там никакого скрытого смысла val(ue). Смотрел интервью от разработчиков языка, они выбрали слово var как вполне подходящее и естественное, а второе readonly слово сделали val, чтобы когда пишешь код, код у тебя не прыгал слева направо, потому что длинна ключевых слов разная. Сделали val, потому что там тоже 3 буквы. Как-то ещё они это обосновали, уже плохо помню детали, но какого-то сверх смысла там нет. Просто одинаковая длина ключевых слов.
8:27 Дополню. Когда код компилируется, всё что возможно превращается в примитивы, например в int, как в Java, если же это невозможно, то будет как в Java Integer, если говорить о целых числах, например.
20:26 "else if" это не отдельный оператор это отдельно else предыдущего if и вложенный в него новый if - даже если внутри языка это не так (я не изучал), это проще для понимания, зачем усложнять логику понимания
5:41 должно быть "вставляет символ переноса каретки" -- "LF" для макос (ASCII DEC: 10, HEX: 0A, известный также как ' '), как это указано в левом нижнем углу (для винды это CRLF, для линукса - CR) 26:16 Определите, пожалуйста, свою аудиторию: вы либо рассказываете тем, кто знает Java или другой язык программирования (зачем тогда так долго об операторах ветвления?), либо разжевываете материал для абсолютных новичков (и тогда упоминания Java должны быть в другом контексте, явно, что выражение: "как мы знаем из Java" уже недопустимо). 29:58 считайте это тернарным оператором с проверкой на !NULL (не Null): если A не null, то верни A, иначе верни B ... или эквивалентно в Kotlin: if A != Null A else B или в Cи-style: (A != Null) ? A : B (теперь понятно, откуда само обозначение ?: ...или нет?) 32:23 фигурные скобки для одной строчки/одного оператора не нужны (кроме else) 39:08 в Python и Kotlin НЕТ цикла For.... это аналог циклов Foreach, итерация происходит в Коллекции (итерация в Очереди несколько иная, за счет этого for in ... enumerate() в Пайтон работает быстрее обычного for in range()), В Котлине for это также метод класса Коллекции, причем {} здесь не тело цикла, а лямбда-функция, если быть корректным, но для простоты восприятия... ... потом дополню...
Подача не плохая но нужно поработать над подаваемым материалом и дикцией, плюс не особо понятно на кого рассчитан курс, совсем новичкам мало инфы а ребятам с опытом (как мне) штуки по типу как заводить константы и использовать условия с утками не особо интересно)
Спасибо за критику Курс является по сути знакомством с синтаксисом и основными конструкциями языка, соответственно новички смогут понять в какую сторону им копать, ну а опытные просто повторят какие-то основы
Java синтаксически намного проще, чем Kotlin. Если знаешь Java, ты можешь посмотреть байткод Kotlin и конвертировать его в Java. Смотришь код на Java и любая "магия" Kotlin становится понятной. В известной IDE, которая в видео открываешь Kotlin класс, когда он активен (видишь код) в верхнем меню: Tools => Kotlin => Show Kotlin Bytecode. В открывшейся области с байткодом нажимаешь кнопку Decompile.
хороший материал. ну теперь надо про андроид. основные компоненты, корутины, flow и т. д.
О да. Очень крутой канал. Подписка, Лайки и комментарии обещаю. Это конкретно видео, пускай и не полное, но оно поможет быстро освежить память, если долго не работал с этим яп или понять суть, если новичок. С уважением, спасибо.
Прикольно)
Очень интересно! Спасибо большое!
Застопорился на Null-safety. Объекты определены как val(ue), при этом до того утверждается, что val(ue) - неизменяемые объекты. В примере же показано, что вполне себе изменяемые, но без объяснения этой особенности. Сама концепция понятна. Если объект может быть неинициализирован, то возвращается некое значение по умолчанию для соответствующего метода.
Не путай инициализацию и изменение значения. В примере на видео я сначала создаю val, а уже потом его инициализирую, это не нарушает правила val. Изменять потом я это значение конечно не могу
Какая-то каша. Ты, по-моему, вообще ничего не понял.
val это просто неизменяемая ссылка. Ты одной переменной, объявленной с ключевым словом val можешь присвоить один раз ссылку на какой-то объект (экземпляр класса) и всё. Нет там никакого скрытого смысла val(ue). Смотрел интервью от разработчиков языка, они выбрали слово var как вполне подходящее и естественное, а второе readonly слово сделали val, чтобы когда пишешь код, код у тебя не прыгал слева направо, потому что длинна ключевых слов разная. Сделали val, потому что там тоже 3 буквы. Как-то ещё они это обосновали, уже плохо помню детали, но какого-то сверх смысла там нет. Просто одинаковая длина ключевых слов.
Поищи видео здесь на ютубе "Андрей Бреслав - На плечах гигантов: языки, у которых учился Kotlin". Много интересного узнаешь.
8:27 Дополню. Когда код компилируется, всё что возможно превращается в примитивы, например в int, как в Java, если же это невозможно, то будет как в Java Integer, если говорить о целых числах, например.
20:26 "else if" это не отдельный оператор это отдельно else предыдущего if и вложенный в него новый if - даже если внутри языка это не так (я не изучал), это проще для понимания, зачем усложнять логику понимания
Прикольно.
Ещё бы по Compose
Про compose вскоре будет
@@programmerc1178 ожидаем
5:41 должно быть "вставляет символ переноса каретки" -- "LF" для макос (ASCII DEC: 10, HEX: 0A, известный также как '
'), как это указано в левом нижнем углу (для винды это CRLF, для линукса - CR)
26:16 Определите, пожалуйста, свою аудиторию: вы либо рассказываете тем, кто знает Java или другой язык программирования (зачем тогда так долго об операторах ветвления?), либо разжевываете материал для абсолютных новичков (и тогда упоминания Java должны быть в другом контексте, явно, что выражение: "как мы знаем из Java" уже недопустимо).
29:58 считайте это тернарным оператором с проверкой на !NULL (не Null): если A не null, то верни A, иначе верни B ... или эквивалентно в Kotlin: if A != Null A else B или в Cи-style: (A != Null) ? A : B (теперь понятно, откуда само обозначение ?: ...или нет?)
32:23 фигурные скобки для одной строчки/одного оператора не нужны (кроме else)
39:08 в Python и Kotlin НЕТ цикла For.... это аналог циклов Foreach, итерация происходит в Коллекции (итерация в Очереди несколько иная, за счет этого for in ... enumerate() в Пайтон работает быстрее обычного for in range()), В Котлине for это также метод класса Коллекции, причем {} здесь не тело цикла, а лямбда-функция, если быть корректным, но для простоты восприятия...
... потом дополню...
Спасибо, что потратили время и написали свое пояснение. Это будет полезно тем, кто заглянет в комментарии :)
ничего не увидел про let, apply и т.д.
Про apply - 02:08:30
@@programmerc1178 а про let?
остальные годно рассказано, понравилось.
Красава!
Подача не плохая но нужно поработать над подаваемым материалом и дикцией, плюс не особо понятно на кого рассчитан курс, совсем новичкам мало инфы а ребятам с опытом (как мне) штуки по типу как заводить константы и использовать условия с утками не особо интересно)
Спасибо за критику
Курс является по сути знакомством с синтаксисом и основными конструкциями языка, соответственно новички смогут понять в какую сторону им копать, ну а опытные просто повторят какие-то основы
А что за Kotlin Script?я в инете не могу найти по нему, и жду ролик по KMP
По своей сути Kotlin Script - технология, позволяющая нам запускать отдельные скрипты на колтуне без создания проекта, просто в командной строке
Индивидуальные занятия практикуете ?
Так точно. Для консультации по поводу этого напишите в телеграм @mikhailandroiddev
Хотел бы узнать хочу учить Kotlin надо ли знать Java?
Нет, в принципе вовсе не обязательно
Java синтаксически намного проще, чем Kotlin. Если знаешь Java, ты можешь посмотреть байткод Kotlin и конвертировать его в Java. Смотришь код на Java и любая "магия" Kotlin становится понятной. В известной IDE, которая в видео открываешь Kotlin класс, когда он активен (видишь код) в верхнем меню: Tools => Kotlin => Show Kotlin Bytecode. В открывшейся области с байткодом нажимаешь кнопку Decompile.
@@wsxpocxeafx Все так. Единственное, что не Kotlin Bytecode, а Java Bytecode (именно в него переводится Kotlin при компиляции)
Лучше использовать не readLine, а readln
readln() была введена в новых версиях Kotlin и считается рекомендуемой для использования, тк она null-safety.