Гайд по пополнению запаса, берем панталоджик или любую игру с кучей диалогов(еще советую Sunless Sea и Skies), Записываем все неясные слова в отдельный блокнотик. Пишем прогу на любимом языке которая будет проверять ваши знания блокнотика.
Чел делает маленькие компутактеры в странных формфакторах https://youtu.be/eR3kf-nUY-s
gavr_sas
6) ИИИИ теперь внимание, 1) перегружаем у класса invoke оператор, 2) передаем туда лямбду 3) пускай эта лямбда принимает Функцию Расширения! этого же класса!!! Так как этот перегруженные оператор invoke принимает только лямбду и никаких больше аргументов…
13) Reified types, это не так круто как звучит, просто изза того что в жабе дженерики erased(так их добавили чтобы не ломать обратную совместимость) рантайм о них ничего не знает, то есть мы даже не можем проверить его тип через T::class.java(скрин 1)
Так вот это можно пофиксить, если функцию сделать inline, а дженерик тип reified. Так как функция инлайнится в место вызова, в котором собственно все о типе T известно, все ограничения erased дженериков спадают. Проблема только в том что инлайн функции нельзя колить из джавы, но это не страшно.
Еще одно применение это перегрузка по возвращаемому значению, ясное дело что обычно так не перегрузишь(разве что в языке есть кт темплейты), а тут с reified можно
Просто делаем switch по дженерик типу дженерик параметра T::class, и кастуем возвращаемое значение в тот же тип
Конечно хотелось бы просто темплейты как в ниме/С++, но с учетом что под капотом жаба и так уже хоть чтото
#kotlin
Так вот это можно пофиксить, если функцию сделать inline, а дженерик тип reified. Так как функция инлайнится в место вызова, в котором собственно все о типе T известно, все ограничения erased дженериков спадают. Проблема только в том что инлайн функции нельзя колить из джавы, но это не страшно.
Еще одно применение это перегрузка по возвращаемому значению, ясное дело что обычно так не перегрузишь(разве что в языке есть кт темплейты), а тут с reified можно
Просто делаем switch по дженерик типу дженерик параметра T::class, и кастуем возвращаемое значение в тот же тип
Конечно хотелось бы просто темплейты как в ниме/С++, но с учетом что под капотом жаба и так уже хоть чтото
#kotlin
Итак, простейшая задачка, есть у вас тип в котором поле name объект из двух полей first&last name, и второе поля age,
цель создать из него плоскую дтошку, сделать универсальным пока не получается, (нужна рекурсия в типе шоб пройтись по всему дереву вложенностей объектов в объекты, не хочу думать), но все равно было очень интересно
UPD, вот с рекурсией и комментами, первый тип возвращает именно тип массива из двух элементов, да в TS может быть тип конкретного количества.
цель создать из него плоскую дтошку, сделать универсальным пока не получается, (нужна рекурсия в типе шоб пройтись по всему дереву вложенностей объектов в объекты, не хочу думать), но все равно было очень интересно
UPD, вот с рекурсией и комментами, первый тип возвращает именно тип массива из двух элементов, да в TS может быть тип конкретного количества.
Когда я был в шкиле, мне эта короткометражка показалась довольно интересной, с тех пор не пересматривал, самое время https://youtu.be/FYkH65zY9qU
YouTube
они сделаны из мяса
Forwarded from Питерская Хроника
Петербуржцы назвали билборды на платформах депрессивным. Компания «Буше» решила отказаться от такой рекламы
Please open Telegram to view this post
VIEW IN TELEGRAM