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