Size: a a a

2020 October 23

QH

Quantum Harmonizer in KotlinLangRu
Иван Иванов
это как?
.use(fun(it: T) {
   …
})
источник

ИИ

Иван Иванов... in KotlinLangRu
Quantum Harmonizer
.use(fun(it: T) {
   …
})
оу. рили
источник

BP

Bogdan Panchenko in KotlinLangRu
Иван Иванов
Господа. Я правильно понимаю, что нужно использовать секции try/finally, чтобы иметь возможность перехватывать return без метки @use внутри исполняемого блока?

Или существуют другие практики?
Ем а зачем use ? В данном случае
источник

ИИ

Иван Иванов... in KotlinLangRu
Quantum Harmonizer
.use(fun(it: T) {
   …
})
так. а зачем оно?
источник

ИИ

Иван Иванов... in KotlinLangRu
Bogdan Panchenko
Ем а зачем use ? В данном случае
логику выделения/возвращения jdbc соединения вынести из блока.
источник

ИИ

Иван Иванов... in KotlinLangRu
"логику" громко сказано. просто рутинные операции
источник

BP

Bogdan Panchenko in KotlinLangRu
Иван Иванов
так. а зачем оно?
Тут про инлайнинг и то как return ведёт там, в инлайнах return возвращает из основной функции
источник

BP

Bogdan Panchenko in KotlinLangRu
Иван Иванов
логику выделения/возвращения jdbc соединения вынести из блока.
? Оно просто закрывает, это +1 строчка
источник

BP

Bogdan Panchenko in KotlinLangRu
А стоп это собственный метод
источник

ИИ

Иван Иванов... in KotlinLangRu
Bogdan Panchenko
Тут про инлайнинг и то как return ведёт там, в инлайнах return возвращает из основной функции
да. я понял это. вот и пришёл узнать, а как правильно инлайны строить, чтобы block выполнился, и даже если в нём сделали return value, а не return@use value, то всё равно закрыло соединение.

Вы мне на днях показали, как работа ведётся с Closeable.use, но там секции try/catch/finally введены для того, чтобы и с исключениями поработать. finally там так и так нужна.
источник

QH

Quantum Harmonizer in KotlinLangRu
Иван Иванов
да. я понял это. вот и пришёл узнать, а как правильно инлайны строить, чтобы block выполнился, и даже если в нём сделали return value, а не return@use value, то всё равно закрыло соединение.

Вы мне на днях показали, как работа ведётся с Closeable.use, но там секции try/catch/finally введены для того, чтобы и с исключениями поработать. finally там так и так нужна.
погоди, а разве non-local return пройдёт мимо finally? Я вот так не думаю
источник

BP

Bogdan Panchenko in KotlinLangRu
Иван Иванов
да. я понял это. вот и пришёл узнать, а как правильно инлайны строить, чтобы block выполнился, и даже если в нём сделали return value, а не return@use value, то всё равно закрыло соединение.

Вы мне на днях показали, как работа ведётся с Closeable.use, но там секции try/catch/finally введены для того, чтобы и с исключениями поработать. finally там так и так нужна.
Ну так если ты вернёшься из метода в блоке try ты все равно попадешь в finally.
источник

ИИ

Иван Иванов... in KotlinLangRu
Quantum Harmonizer
погоди, а разве non-local return пройдёт мимо finally? Я вот так не думаю
нет. конечно, не пройдёт. но я спрашиваю, правильно  ли так?
источник

BP

Bogdan Panchenko in KotlinLangRu
Если не путаю
источник

ИИ

Иван Иванов... in KotlinLangRu
это первое решение, которое пришло в голову. но кто знает, на что способен котлин)
источник

BP

Bogdan Panchenko in KotlinLangRu
Иван Иванов
это первое решение, которое пришло в голову. но кто знает, на что способен котлин)
Это jvm. 6а других платформах хз. Но должно быть аналогично
источник

ИИ

Иван Иванов... in KotlinLangRu
и вдруг finally ресурсы кушает, или не даёт jvm оптимизировать код с такими секциями
источник

BP

Bogdan Panchenko in KotlinLangRu
Иван Иванов
и вдруг finally ресурсы кушает, или не даёт jvm оптимизировать код с такими секциями
Конечно не даёт, точней сам try. Ну и наоборот.
источник

BP

Bogdan Panchenko in KotlinLangRu
Оптимизацией нужно заниматься когда ресурсов нет, если это не касается архитектуры приложения
источник

ИИ

Иван Иванов... in KotlinLangRu
Bogdan Panchenko
Конечно не даёт, точней сам try. Ну и наоборот.
вот. значит правильно пришёл
источник