Size: a a a

Kotlin Community

2020 March 09

AN

Alexander Nozik in Kotlin Community
Bogdan Panchenko
В торнаде куча таких
В смысле в репе? Давно туда не заходил. Пока они не зарелизят 2.0, я с ними не дружу
источник

AN

Alexander Nozik in Kotlin Community
Чего-то они похоже скисли :(
источник

AL

Alexander Levin in Kotlin Community
Kopusha
насколько идиоматично писать foo as Foo, ничему не присваивая? Ну, те. ниже уже foo будет привиден к нужному типу
Ну т.е. я бы сказал, что я такое где-то видел, но предпочёл бы более явный подход. Хотя бы что-то вроде require(foo is Foo)
источник

AN

Alexander Nozik in Kotlin Community
Kopusha
насколько идиоматично писать foo as Foo, ничему не присваивая? Ну, те. ниже уже foo будет привиден к нужному типу
Ну довольно часто используется
источник

K

Kopusha in Kotlin Community
спасибо
источник

BP

Bogdan Panchenko in Kotlin Community
Alexander Nozik
В смысле в репе? Давно туда не заходил. Пока они не зарелизят 2.0, я с ними не дружу
Ишью таких вот
источник

BP

Bogdan Panchenko in Kotlin Community
Alexander Levin
Ну т.е. я бы сказал, что я такое где-то видел, но предпочёл бы более явный подход. Хотя бы что-то вроде require(foo is Foo)
+ хотя если уверен в типе as не даёт оверхед, хотя даёт рантайм ексепшин
источник

AN

Alexander Nozik in Kotlin Community
Bogdan Panchenko
+ хотя если уверен в типе as не даёт оверхед, хотя даёт рантайм ексепшин
Я бы сказал, что выглядит лучше, чем вешать какой-нибудь лет с кложурой. Вопрос в том, как отлавливать.
источник

AO

Alexey Otts in Kotlin Community
Alexander Nozik
Ну довольно часто используется
А это точно не признак хренового кода?
источник

AN

Alexander Nozik in Kotlin Community
Alexey Otts
А это точно не признак хренового кода?
Не знаю, вопрос спорный. Вопрос в том, какую ошибку вы хотите получить. Можно сделать t as? T ?:error()
источник

AO

Alexey Otts in Kotlin Community
Alexander Nozik
Не знаю, вопрос спорный. Вопрос в том, какую ошибку вы хотите получить. Можно сделать t as? T ?:error()
Ну тут скорее вопрос, а почему вообще пришлось тайпчекать?
источник

AN

Alexander Nozik in Kotlin Community
Alexey Otts
Ну тут скорее вопрос, а почему вообще пришлось тайпчекать?
Тайпчеки случаются. Это вполне нормальное поведение. Можно конечно сказать, что в каком-нибудь сферическом языке всегда все можно сделать в статике, но давайте не будем об этом.
источник

DR

Dmitry Repin in Kotlin Community
Приветствую! Подскажите, возможно ли написать такую функцию, которая возвращала бы object, который бы наследовал класс T и интерфейс I? На данный момент я смог  лишь создать объект-наследник класса T: T::class.java.newInstance(). Кто знает, как  помимо наследования класса, наследовать ещё и интерфейс? Пусть интерфейс будет даже не дженерик
источник

AN

Alexander Nozik in Kotlin Community
Dmitry Repin
Приветствую! Подскажите, возможно ли написать такую функцию, которая возвращала бы object, который бы наследовал класс T и интерфейс I? На данный момент я смог  лишь создать объект-наследник класса T: T::class.java.newInstance(). Кто знает, как  помимо наследования класса, наследовать ещё и интерфейс? Пусть интерфейс будет даже не дженерик
fun <R> getSomething(): R where R: T, R: I{...}
источник

K

Kopusha in Kotlin Community
Alexey Otts
А это точно не признак хренового кода?
а в чем отличие от when(foo){} и дальше пошла простыня из is?)) InstanceOf считался плохим дизайном в джаве, но is + sealed class внезапно модно-молодежно.
источник

СМ

Стас М in Kotlin Community
А что плохого в инстансоф?
источник

QH

Quantum Harmonizer in Kotlin Community
Kopusha
а в чем отличие от when(foo){} и дальше пошла простыня из is?)) InstanceOf считался плохим дизайном в джаве, но is + sealed class внезапно модно-молодежно.
when на sealed class гарантирует exhaustiveness
источник

QH

Quantum Harmonizer in Kotlin Community
Стас М
А что плохого в инстансоф?
источник

K

Kopusha in Kotlin Community
ты же знаешь, что не гарантирует. Но можно сделать, чтобы гарантировал
источник

QH

Quantum Harmonizer in Kotlin Community
Kopusha
ты же знаешь, что не гарантирует. Но можно сделать, чтобы гарантировал
Не понял тебя.
источник