Size: a a a

Kotlin Community

2019 November 11

VP

Vladimir Petrakovich in Kotlin Community
Либо инлайновый, либо с add/remove
источник

AN

Alexander Nozik in Kotlin Community
Можно сделать интерфейс типа ListWithSet, который наследует лист, но позволяет только set. В чем проблема?
источник

AN

Alexander Nozik in Kotlin Community
Там же все беды с чтением, а не с записью. Нельзя массив интерпретировать как лист
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
Можно сделать интерфейс типа ListWithSet, который наследует лист, но позволяет только set. В чем проблема?
Можно. Но нет такого интерфейса сейчас. И нужен ли - это ещё вопрос.
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
Можно. Но нет такого интерфейса сейчас. И нужен ли - это ещё вопрос.
Да, вместо него есть Array, который вообще не интерфейс.
источник

AN

Alexander Nozik in Kotlin Community
и даже не iterable
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
Да, вместо него есть Array, который вообще не интерфейс.
Так спрятать Array в обёртку - и всё. Просто не использовать их напрямую 🙂
источник

VP

Vladimir Petrakovich in Kotlin Community
А если используешь - готовься к проблемам
источник

AN

Alexander Nozik in Kotlin Community
источник

VP

Vladimir Petrakovich in Kotlin Community
Вот то, что для каждого примитива и массива такого типа надо дублировать код - это проблема, да
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
Вот то, что для каждого примитива и массива такого типа надо дублировать код - это проблема, да
Так про это и речь. Еще кстати косяк с JS, там нативные массивы, которые на самом деле листы, представляются именно как массивы.
источник

VP

Vladimir Petrakovich in Kotlin Community
Вангую кучу боксинга
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
Так про это и речь. Еще кстати косяк с JS, там нативные массивы, которые на самом деле листы, представляются именно как массивы.
Разговор вроде начался с плясок с Array, а не примитивов.
И если с ним всё понятно, то примитивы и попытки на их основе сделать удобно и эффективно - это боль, которую непонятно, как можно пофиксить.
источник

VP

Vladimir Petrakovich in Kotlin Community
Quantum Harmonizer
да, когда речь о коре языка, который должен быть крайне тонким и быстрым
Удобно, быстро и без кодгена - можно выбрать только два
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
Вангую кучу боксинга
Там немного непредсказуемо, но да, в некоторых случаях есть. Для того, чтобы избавиться, нужна автоспециализация или грааль.
источник

QH

Quantum Harmonizer in Kotlin Community
Vladimir Petrakovich
Удобно, быстро и без кодгена - можно выбрать только два
Мне, пожалуйста, первые два. Спасибо
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
Там немного непредсказуемо, но да, в некоторых случаях есть. Для того, чтобы избавиться, нужна автоспециализация или грааль.
А разве не в get() всегда? Или scalar replacement помогает?
источник

VP

Vladimir Petrakovich in Kotlin Community
Quantum Harmonizer
Мне, пожалуйста, первые два. Спасибо
Добро пожаловать в мир кодгена, kotlin-stdlib передаёт привет.
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
А разве не в get() всегда? Или scalar replacement помогает?
да, JVM шибко умный
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
да, JVM шибко умный
Это радует, всё не так плохо)
источник