Size: a a a

Programming Offtop

2020 November 16

ML

Mikhail Levchenko in Programming Offtop
саша сок #KotlinGang
я хочу try?...
tryOrNull(block: () -> T) : T? = try { block() } catch { log(e); null }
источник

AM

Andrew Mikhaylov in Programming Offtop
Ну или так, конечно
источник

с#

саша сок #KotlinGang... in Programming Offtop
Mikhail Levchenko
tryOrNull(block: () -> T) : T? = try { block() } catch { log(e); null }
да это я понял, но вот например было бы неплохо, чтобы when? или просто when по дефолту возвращал null
источник

с#

саша сок #KotlinGang... in Programming Offtop
а то else -> ... каждый раз требует
источник

AM

Andrew Mikhaylov in Programming Offtop
На самом деле и это, и tryOrNull выше поощряет не особо хороший стиль
источник

с#

саша сок #KotlinGang... in Programming Offtop
Andrew Mikhaylov
На самом деле и это, и tryOrNull выше поощряет не особо хороший стиль
в общем случае да. но в некоторых случаях ошибку не надо обрабатывать.
источник

AM

Andrew Mikhaylov in Programming Offtop
Но tryOrNull полезен там, где реально пофиг, что за ошибка случилась, а вот возможность опустить else в when мотивирует никогда не думать о том, что на деле должен делать код при потенциально ожидаемых изменениях где-то совершенно в другом месте.
источник

AM

Andrew Mikhaylov in Programming Offtop
Плюс такое изменение не совместимо с exhaustive when
источник

AM

Andrew Mikhaylov in Programming Offtop
Уж напрягись и припиши осмысленный else лучше)
источник

(

( in Programming Offtop
Andrew Mikhaylov
Но tryOrNull полезен там, где реально пофиг, что за ошибка случилась, а вот возможность опустить else в when мотивирует никогда не думать о том, что на деле должен делать код при потенциально ожидаемых изменениях где-то совершенно в другом месте.
так нет же, when остаётся тотальным, @y9san9 о синтаксисе, при котором елсе просто не-эксплиситно возвращает null
источник

AM

Andrew Mikhaylov in Programming Offtop
Если вдруг завезут патмат, наличие exhaustiveness будет ещё критичнее, там уже сложнее судить, действительно всё ли ты перебрал
источник

(

( in Programming Offtop
Andrew Mikhaylov
Если вдруг завезут патмат, наличие exhaustiveness будет ещё критичнее, там уже сложнее судить, действительно всё ли ты перебрал
завезут ли 🤔
источник

AM

Andrew Mikhaylov in Programming Offtop
(
так нет же, when остаётся тотальным, @y9san9 о синтаксисе, при котором елсе просто не-эксплиситно возвращает null
Мне спокойнее порой эксепшн ёбнуть на необработанную ветку, чем ссаться, что я забыл во всех 30 местах похендлить новый вариант
источник

с#

саша сок #KotlinGang... in Programming Offtop
Andrew Mikhaylov
Уж напрягись и припиши осмысленный else лучше)
у меня иногда when возвращает Unit и тогда я пишу

fun foo() = when {
   ... -> ...
   ... -> ...
   else -> null
}.unit

куда уж осмысленней
источник

с#

саша сок #KotlinGang... in Programming Offtop
(
так нет же, when остаётся тотальным, @y9san9 о синтаксисе, при котором елсе просто не-эксплиситно возвращает null
да
источник

(

( in Programming Offtop
Елизаров недавно в ленгуаге-дизайн чатике довольно упорно доказывал, что флоу тайпинг > патмат
источник

AM

Andrew Mikhaylov in Programming Offtop
(
завезут ли 🤔
Ну дык Бреслав же говорил, что хочет глянуть на патмат в джаве, потом думать будут
источник

AM

Andrew Mikhaylov in Programming Offtop
(
Елизаров недавно в ленгуаге-дизайн чатике довольно упорно доказывал, что флоу тайпинг > патмат
По-моему он не это доказывал — логично, что патмат покрывает больше, чем флоу тайпинг. Но я невнимательно читал тот разговор
источник

(

( in Programming Offtop
Andrew Mikhaylov
По-моему он не это доказывал — логично, что патмат покрывает больше, чем флоу тайпинг. Но я невнимательно читал тот разговор
его главным аргументом было, что зачем давать имена очередным сущностям, когда у тебя уже и так есть засмарткасченое что-то
источник

(

( in Programming Offtop
но это такое, потому что хоть в котлине смарткасты и могут произвольно глубоко спуститься в структуру, всё ещё остаётся херня типа
val a = mutableA
if (a is ...
источник