gavr_sas – Telegram
gavr_sas
216 subscribers
2.68K photos
185 videos
28 files
788 links
JB пропаганда
Download Telegram
как же я ору с этого
Когда вашу рекламу пишет нейросетка
котики, шанс выиграть аааввтомобиишль, не проходите мимо, скидки
Как все таки печально когда в языке нет неймспейсов и их приходится присобачивать к названиям классов(
Скажем привет самой консистентной UX системе
кто зайдет штраф 30 минут жизни
https://floor796.com/?render=2#t3r1,376,553
👍2
1) Цель заменить вот этот if сделав аналог also, но с проверкой на нулл и сужением типа
2) Ну вроде ничего сложного, расширяем нуллабл дженерик тип T функцией ifNotNullDo, принимающей лямбду от не нуллабл T, и возвращающей нуллабл T.
Внутри просто выполняем полученную лямбду только если T не нулл.
3) Готово, тип внутри лямбды действительно сузился с String? до String. Помойму прям красота
#kotlin
Эксперементально выяснил шо жаба от -1 до 5 использует const, а потом int push, странно, от -1 до 5 это 7 байт, чому не использовать от -1 до 6
Берем после работы термос и идем гулять!
2
Есть такая штука в котлине, инлайн классы, это классы с одним проперти, во всех местах использования сам класс будет опущен и будет использоваться только это поле чтобы избавится от оверхеда.
Вот я подумал что если совместить эту фичу с sealed, отнаследовав 2 таких инлайн класса от одного пустого потомка то можно получить настоящее или между двумя типами, вроде string | int, которое возможно в TS, но невозможно, да больше нигде вообщем то.
Но нет, к сожалению inline классы нельзя наследовать #kotlin
PS а вспомнил, это еще можно в Crystal
Но по крайней мере inline классы являются полноценным аналогам distinct типов нима. То есть вот хочу я сделать чтобы path было отдельным типом, не просто path: string, и пихнуть туда можно что угодно, а именно path: Path, но без оверхеда на класс/тип.
Вот inline классы это именно оно. #kotlin
Когда код писали ученые, это сразу бросается в глаза по их любви к матрицам