gavr_sas – Telegram
gavr_sas
216 subscribers
2.68K photos
185 videos
28 files
788 links
JB пропаганда
Download Telegram
gavr_sas
12) Такс, а теперь самая сложная часть моего котлин "доклада", DSL Для понимания создания DSL нам нужно немножно других фактов 1) В котлине можно перегружать у объектов оператор вызова () с помощью функции operator fun invoke 2) В котлине есть синт сахар как…
6) ИИИИ теперь внимание,
1) перегружаем у класса invoke оператор,
2) передаем туда лямбду
3) пускай эта лямбда принимает Функцию Расширения! этого же класса!!!

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

Так как лямбда которую он принимает является расширением класса его самого, то внутри этой лямбды мы имеем доступ к полям этого класса.
👍1
Такс, а теперь о действительно важном.
Собираем все шесь неиспользованных горбушек, потому что они не влезают в тостер, в одну, режем на кубики, в отдельной миске смешиваем базелик, выдавленный чеснок, паприку, красный черный перец и соль.
0) высыпаем смесь в хлеб и смешиваем
1) кидаем хлеб на сухую! сковородку
2) ждем пока хлеб высохнет минут 7
3) раскидываем кубики сливочново в разные стороны сковородки и перемешиваем шоб получить корочку, если не хватает можно подлить подсолнечного.
Готово, закуска богов за 15 минут и старой неиспользованной булки
👍1
Ват, и зачем тогда ему такое красивое название, в ниме это называется none
Вот теперь я чувствую насколько тяжелые сейчас делают сайты, вот ютуб например
В стенах завелись крысы, с плешью на лопатке
😢1
Впервые в жизни случайно посолил чай. С учетом того что я добавил всего чайную ложку и тем насколько соленой стала большая кружка чая задумался над тем насколько соль "концентрированнее", кажется для того же эффекта потребовалось бы штук 5 ложек сахара
Чеерт, котлин украл из моего языка идею универсального котнрол флов оператора. Их when можно использовать как ряд if elsoв делая по условию в каждой ветке, или как около паттерн матчинг, с ИЛИ вариантами через запятую.
Угадайте где еще можно также
Кто говорит что у npm миллиард зависимостей даже для хелло ворда и они долго скачиваются, вот хелло ворлд на бекенде ktor скачиваются тыщи пакетов уже 4 минуты
Гайд по пополнению запаса, берем панталоджик или любую игру с кучей диалогов(еще советую Sunless Sea и Skies), Записываем все неясные слова в отдельный блокнотик. Пишем прогу на любимом языке которая будет проверять ваши знания блокнотика.
Чел делает маленькие компутактеры в странных формфакторах https://youtu.be/eR3kf-nUY-s
LISP
4
"Adobe Photoshop retroactively blacks out previously saved .psd files unless you pay a new $21/mo subnoscription"
Юзать чтото от adobe в 2к22
🤡1
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
Ваш котлин не JavaScript?