@kotlin_lang

Страница 563 из 982
Kira
26.02.2018
21:29:40
А, явовский

Victor
26.02.2018
21:35:07
ну можно наебаться

но зато удобно

Google
Victor
26.02.2018
21:35:20
хотяяя



Igor
26.02.2018
21:47:45
Ты же в курсе, что Option в котлин не нужен?

Руслан
26.02.2018
22:04:16
И снова время митапов! Уже прошло несколько митапов из предыдущего списка, и от них остались видеозаписи: PS JAVA MEETUP #9 Kotlin: практика разработки современного языка программирования https://www.youtube.com/watch?v=zARWLUdZWXs Записей с Kotlin Meetup SPb еще нет, но должны скоро появиться тут: https://www.youtube.com/channel/UCSlqvh44HWn32t3C1XowgHQ/videos, подписывайтесь! и следите за чатом @kug_spb Записи с BKUG про Ktor и Kotlin/Native: https://www.youtube.com/watch?v=bfEJZwSmy1g&list=PLoo7Ank5cc7ELZbJ3JNWtH6pfDCZHkwTv Но на этом не все, в ближайшее время вас ждет новая порция Kotlin: Киев, 2 марта: KyivKUG - Automation with Kotlin / Animation with Kotlin https://www.meetup.com/KyivKUG/events/248094816/ Москва, 15 марта: Kotlin Meetup в Leroy Merlin. https://twitter.com/JetBrainsRu/status/966281944068739072 Киев, 24 марта: Kotlin Night Kyiv https://www.meetup.com/KyivKUG/events/246800518/

Bogdan
26.02.2018
22:49:34
а в witer сразу нужный объект принимать не судьба?

все больше смахивает на костыли и палки

Boris
27.02.2018
03:20:22
кто-нибудь использовал groupingBy?

Евгений
27.02.2018
03:27:17
groupBy

Boris
27.02.2018
03:27:52
Евгений
27.02.2018
03:28:24
вот и я говорю, полный путь до метода надо указывать) а то не понятно об чем собссно вопрос

в расширениях для Collection нету groupingBy, вроде

Boris
27.02.2018
03:29:14
Я думаю тот кто использовал, тот знает полный путь ?

Google
Boris
27.02.2018
03:30:11
В 1.1 появился

Евгений
27.02.2018
03:30:15
и правда есть

Boris
27.02.2018
03:31:27
и правда есть
Вот и я говорю есть ?

Victor
27.02.2018
05:03:47
Ты же в курсе, что Option в котлин не нужен?
в чем проблема Option? map, orElse, orElseGet, монадки итд

а в witer сразу нужный объект принимать не судьба?
потому что тогда не скомпилится: Kotlin: Out-projected type 'FeatureController<out Feature>?' prohibits the use of названиеметода Пасту с контрактом кидал выше

Mikhail
27.02.2018
06:29:20
в чем проблема Option? map, orElse, orElseGet, монадки итд
map === ?. map' === ?.let { } orElse === ?: orElseGet === ?: getter() orElseThrow === ?: throw

Если ты не используешь arrow и не имеешь HKT, то тебе нафиг это не надо

Victor
27.02.2018
06:31:22
как можно использовать arrow.core.Option и не использовать arrow?)

Mikhail
27.02.2018
06:32:55
Я не Ванга, импорты по скриншотам кода не подставляю, речь шла о джавовом Option

Разве нет?

Victor
27.02.2018
06:33:04
orElse != ?: Option.fromNullable(daohui.getPayment()). orElse(daohui2.getFuckingPayment()) .orElse(daohui3.createFuckingPayment()) .getOrElse(getFuckingPayment())

речь шла о arrow.core.Option

с которым можно вот такое Option.applicative().tupled(Some(1), Some("Hello"), Some(20.0)) // Some(Tuple3(a=1, b=Hello, c=20.0)) и вот такое Option.monad().binding { val x = none<Int>().bind() val y = Some(1 + x).bind() val z = Some(1 + y).bind() x + y + z } //None

я лох и нихера подобного не умею и не применяю в проде, конечно же, но меня так восторг их ридми, что я взял Пока пригодилось только orElse, но тоже вкусная штука

Mikhail
27.02.2018
06:36:32
Я б не стал arrow только ради опшна тащить

Victor
27.02.2018
06:36:59
он оборачивает же опшном

Option+ Try

ну вот такие штуки можно mayBeA flatMap { a -> mayBeB flatMap { b -> mayBeC map { c -> doSmth(a, b, c) } } }

Google
Victor
27.02.2018
06:40:28
конечно можно спокойно обойтись без Option

можно и без котлина обойтись и на жабе писать

Victor
27.02.2018
06:42:33
let2-9?

а

ну вариант, да

ну вообщем конечно по-правильному надо прикидывать, тащить arrow-kt и есть ли с него реальная польза. Ну либо, если прод, иметь стандарт какой-то, юзать опшн или нет

Alexey
27.02.2018
07:45:43
можно и без котлина обойтись и на жабе писать
Такое лучше всё таки на скалке писать ?

Victor
27.02.2018
07:45:58
скоро, скоро :)

просто котлин впрод проще протащить, да и чо там говорить, скалу я абсолютно не знаю

Artur
27.02.2018
07:47:58


Alexey
27.02.2018
07:48:44
что по твоему должен делать get by lazy?

Igor
27.02.2018
07:49:41
можно и без котлина обойтись и на жабе писать
Option в котлине - это куча лишнего кода и ненужные аллокации на обертку

Victor
27.02.2018
07:49:56
опять же, смотря когда

где-то лишний, где-то не лишний

Artur
27.02.2018
07:50:09
что по твоему должен делать get by lazy?
Будет тянуть данные откуда-то еще, обрабатывать их и выдавать наружу (это нужно один раз в приложении)

Victor
27.02.2018
07:50:36
или ты хочешь сказать, что ничего из arrow.core.Option не может быть полезным впринципе?

Igor
27.02.2018
07:52:09
Как и весь arrow. Это бессмысленный порт котов на язык, который не проектировался для этого (они бы еще на java портану)

Alexey
27.02.2018
07:52:48
https://kotlinlang.org/docs/reference/delegated-properties.html#lazy

Google
Victor
27.02.2018
07:53:33
конечно можно обмазываться try-catch'ами

whalemare
27.02.2018
07:53:50
Victor
27.02.2018
07:54:19
http://arrow-kt.io/docs/datatypes/try/

Alexey
27.02.2018
07:54:25
а что он делает?
Ну это MonadError<Id, Throwable>

а там композиции и вот это всё

whalemare
27.02.2018
07:54:42
понятно, спасибо

ща как rxjava будет, кучу операторов учить и что-там когда должно вызываться, вместо старого доброго и прямого try-catch

Admin
ERROR: S client not available

Victor
27.02.2018
07:55:35
есть еще всякие монады и прочее, но, во-первых, я понимаю это очень поверхностно, поэтому за это не буду говорить во-вторых, в arrow это ужасно документировано (почти никак)

ну не учи..)

Artur
27.02.2018
07:56:28
тогда просто val foo by lazy = { //your awesome code}
В таком случае set нельзя задать для property



Alexey
27.02.2018
07:56:47
Для val его и так нельзя же

whalemare
27.02.2018
07:56:48
Вам дорога в go, товарищ
еще не добрался, но котлин по приятнее будет

Artur
27.02.2018
07:57:05
Для val его и так нельзя же
От того и вопрос) Можно ли такие выкрутасы в котлине с Lazy

whalemare
27.02.2018
07:57:26
От того и вопрос) Можно ли такие выкрутасы в котлине с Lazy
у него внутри только get переопределен

у делегата.

Alexey
27.02.2018
07:57:36
дичь какая то получается, зачем это делать на гетерах/сетерах

Google
whalemare
27.02.2018
07:57:39
если свой напишешь с set, то будет тебе лези для вара)

Artur
27.02.2018
07:58:32
да, похоже, что ditch

Всю эту ditch можно безболезненно разрулить через field и можно обойтись без Lazy и setter остается.

Alexey
27.02.2018
08:09:13
oh boy

Igor
27.02.2018
08:09:14
я лох и нихера подобного не умею и не применяю в проде, конечно же, но меня так восторг их ридми, что я взял Пока пригодилось только orElse, но тоже вкусная штука
Думаю тебе надо сделать пета и все это там применить (прям с монад-трансформерами и может даже free-монадками), что бы разобраться. Я тоже когда-то пытался делать ридер монадки/either/option, но понял что в котлине это не практично.

Victor
27.02.2018
08:09:48
ну пока в прод нормальну идут Try и Option'ы

особенно вкусно try с флетмапами всякими

Artur
27.02.2018
08:10:06
oh boy
То ли еще будет) Давно на котлине кодишь?

Victor
27.02.2018
08:10:08
когда работаешь с чтением/записью итд

Alexey
27.02.2018
08:10:53
То ли еще будет) Давно на котлине кодишь?
Я не особо про котлин, я тут в качестве диванного эксперта

Igor
27.02.2018
08:15:13
особенно вкусно try с флетмапами всякими
А как ты “асинхроный” код делаешь?

Victor
27.02.2018
08:15:46
там он не асинхронный

дао все возвращают try

и например у тебя сервис транзакционный

Igor
27.02.2018
08:16:53
Те ты вообще не пишешь асинхронный код?

Victor
27.02.2018
08:17:21
ну в том проекте, что на котлине, пока не писал

но использование arrow в проекте разве запрещает писать асинхронный код? =) К чему вопрос?)

Alexey
27.02.2018
08:18:03
асинхронный код в котлине пока годен только в отрыве от БД

Igor
27.02.2018
08:21:02
но использование arrow в проекте разве запрещает писать асинхронный код? =) К чему вопрос?)
Ну если ты продолжишь для всего юзать arrow, то тебе придется жанглировать 2 и больше монадами одновременно. (интересно бы было бы посмотреть/послушать отзывы на такой котлин-код в реальном продакшене)

Евгений
27.02.2018
08:21:02
я бы сказал, в отрыве от любого IO

Страница 563 из 982