1) Цель заменить вот этот if сделав аналог also, но с проверкой на нулл и сужением типа
2) Ну вроде ничего сложного, расширяем нуллабл дженерик тип T функцией ifNotNullDo, принимающей лямбду от не нуллабл T, и возвращающей нуллабл T.
Внутри просто выполняем полученную лямбду только если T не нулл.
3) Готово, тип внутри лямбды действительно сузился с String? до String. Помойму прям красота
#kotlin
2) Ну вроде ничего сложного, расширяем нуллабл дженерик тип T функцией ifNotNullDo, принимающей лямбду от не нуллабл T, и возвращающей нуллабл T.
Внутри просто выполняем полученную лямбду только если T не нулл.
3) Готово, тип внутри лямбды действительно сузился с String? до String. Помойму прям красота
#kotlin
quite good actually https://youtu.be/ErSmRD67pzo
YouTube
Discord in 2045:
Yesterday is history. Tomorrow is a mystery. But today is a gift... that's why it's called the present :)
╔═╦╗╔╦╗╔═╦═╦╦╦╦╗╔═╗
║╚╣║║║╚╣╚╣╔╣╔╣║╚╣═╣
╠╗║╚╝║║╠╗║╚╣║║║║║═╣
╚═╩══╩═╩═╩═╩╝╚╩═╩═╝
follow me or i will bite you
• Twitter - https://twitter.com/beluga1000…
╔═╦╗╔╦╗╔═╦═╦╦╦╦╗╔═╗
║╚╣║║║╚╣╚╣╔╣╔╣║╚╣═╣
╠╗║╚╝║║╠╗║╚╣║║║║║═╣
╚═╩══╩═╩═╩═╩╝╚╩═╩═╝
follow me or i will bite you
• Twitter - https://twitter.com/beluga1000…
👍1
Есть такая штука в котлине, инлайн классы, это классы с одним проперти, во всех местах использования сам класс будет опущен и будет использоваться только это поле чтобы избавится от оверхеда.
Вот я подумал что если совместить эту фичу с sealed, отнаследовав 2 таких инлайн класса от одного пустого потомка то можно получить настоящее или между двумя типами, вроде string | int, которое возможно в TS, но невозможно, да больше нигде вообщем то.
Но нет, к сожалению inline классы нельзя наследовать #kotlin
PS а вспомнил, это еще можно в Crystal
Вот я подумал что если совместить эту фичу с sealed, отнаследовав 2 таких инлайн класса от одного пустого потомка то можно получить настоящее или между двумя типами, вроде string | int, которое возможно в TS, но невозможно, да больше нигде вообщем то.
Но нет, к сожалению inline классы нельзя наследовать #kotlin
PS а вспомнил, это еще можно в Crystal
Но по крайней мере inline классы являются полноценным аналогам distinct типов нима. То есть вот хочу я сделать чтобы path было отдельным типом, не просто path: string, и пихнуть туда можно что угодно, а именно path: Path, но без оверхеда на класс/тип.
Вот inline классы это именно оно. #kotlin
Вот inline классы это именно оно. #kotlin
gavr_sas
Когда код писали ученые, это сразу бросается в глаза по их любви к матрицам
Сейчас вот думаю, а может это не такая уж плохая идея, вот есть 5 параметров, и от каждого из них как то меняется ответ, как это можно было сделать лучше, такой же пятимерной вложенностью ифов? Кода было бы сильно больше, а суть таже.
Ждемс, интересно как они реализуют CTFE и темплейты, не писать же компиль нима https://nitter.snopyta.org/PiotrekTomiak/status/1593237584159076352
Nitter
Piotr Tomiak (@PiotrekTomiak)
Finally managed to work on a new release of IDE plugin for @nim_lang 👑 Improved debugging experience, compatibility with newest JB IDEs and support for custom toolchains. Available on JetBrains marketplace: https://plugins.jetbrains.com/plugin/15128-nim
❤1