@kotlin_lang

Страница 612 из 982
Dumitru
30.03.2018
20:28:13
https://insights.stackoverflow.com/survey/2018#most-loved-dreaded-and-wanted

Тимур
30.03.2018
20:31:06
Когда люди пишут и читают код - да. Чтобы легче было читать и совместо менять разные файлы. но тут генерация. Вопрос только в том как меньше нагружать анализатор IDE
вот тут не соглашусь миллион раз приходилось читать генеренный код при отладке и каждый раз хотелось поубивать авторов генераторов за такой подход

Google
Kirill
30.03.2018
20:54:06
Так что правильно сделанная do нотация несколько больше умеет, особенно с монад трансформерами

iTEYE
30.03.2018
22:32:56
Привет, есть enum class например someValues. Есть переменная, допустим valueName которая в зависимости от внешних факторов принимает разные значения. Я хочу сделать что-то подобное someValues[valueName] какой правильный синтаксис в том случае?

iTEYE
30.03.2018
23:02:21
Спасибо.

Жабра
31.03.2018
10:06:03
Как в Koin выгрузить какой-то модуль? Допустим, я добавил какой-то модуль, а теперь хочу его удалить. Как это сделать?

Жабра
31.03.2018
10:08:43
lnfn
31.03.2018
10:10:36
Как?
releaseContext() https://insert-koin.io/docs/1.0/reference/contexts/

Жабра
31.03.2018
10:12:08
releaseContext() https://insert-koin.io/docs/1.0/reference/contexts/
Так, а возможно ли докинуть как-нибудь некоторые проперти в di, а потом при необходимости их выгрузить? Именно их.

Правильно ли в данном случае сделать loadKoinModules(myFun(prop1, prop2, ... , propN)), а когда они не нужны releaseContext("ContextName")?

Руслан
31.03.2018
10:43:13
Как же ужасно что в Kotlin хотят добавить SAM для Kotlin интерфейсов. В этом же нет никакого смысла. @relizarov

Google
Konstantin
31.03.2018
10:46:41
Quantum Harmonizer
31.03.2018
10:47:05
Я совсем понимаю, зачем он, но это как static.

Konstantin
31.03.2018
10:47:12
Ну, то есть, примерно понимаю, но киллер-аргумента в пользу sam не могу найти.

Руслан
31.03.2018
10:49:38
Ведь все тоже самое можно сделать с функциональными типами + тайпалиасами. Зачем смешивать и повторять джаву, причем путем введение дополнительного keywordа

Igor
31.03.2018
10:50:59
Ведь все тоже самое можно сделать с функциональными типами + тайпалиасами. Зачем смешивать и повторять джаву, причем путем введение дополнительного keywordа
Иногда из-за перформанса сложно юзать ФТ, ибо там боксинг на примитивах (они же дженерик), инлайнг не всегда возможен. Хотя у меня такой случай был только один раз (когда игру писал).

Ivan
31.03.2018
10:54:48
Как же ужасно что в Kotlin хотят добавить SAM для Kotlin интерфейсов. В этом же нет никакого смысла. @relizarov
типа хотят кейворд для контроля успешной компиляции интерфейса с единственными методом?

Руслан
31.03.2018
10:55:47
Иногда из-за перформанса сложно юзать ФТ, ибо там боксинг на примитивах (они же дженерик), инлайнг не всегда возможен. Хотя у меня такой случай был только один раз (когда игру писал).
Валидный поинт, но кажется у кого такие тонкие материи влияют на перформанс могут и потерпеть с интерфейсами в таких местах :)

Вот

Kylych
31.03.2018
11:00:21
есть несколько классов, где почти все одинаково, за исключением двух моментов, отличается только дженерик типоми, можно ли сократить код с помощью наследования ? Но реализовать не получается. Ниже код, вместо City и CitiesViewHolder могут быть другие классы. class CitiesAdapter(private val resId: Int) : ListAdapter<City, CitiesAdapter.CitiesViewHolder>(callback) { companion object { val callback = object : DiffUtil.ItemCallback<City>() { override fun areItemsTheSame(old: City?, new: City?) = old?.id == new?.id override fun areContentsTheSame(old: City?, new: City?) = old == new } } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CitiesViewHolder { TODO() } override fun onBindViewHolder(holder: CitiesViewHolder, position: Int) { holder.bind(getItem(position)) } class CitiesViewHolder(view: View) : RecyclerView.ViewHolder(view) { fun bind(city: City) { TODO() } } }

Boris
31.03.2018
11:09:24
Ведь все тоже самое можно сделать с функциональными типами + тайпалиасами. Зачем смешивать и повторять джаву, причем путем введение дополнительного keywordа
Во-первых, не всё, я приводил пример когда нельзя, во-вторых, джава тут причем? Это просто небольшое удобство, очень жаль, конечно, что пришлось добавить кочевое слово ради этого

Vladimir
31.03.2018
11:13:20
Мне больше интересно, когда SAM без новых ключевых слов ломает существующий код.

Boris
31.03.2018
11:14:34
А можешь напомнить (желательно примером кода) что не получается сделать?
Сейчас не могу прислать код с телефона, но это вроде был кейз с наследованием

Руслан
31.03.2018
11:15:30
Quantum Harmonizer
31.03.2018
11:15:40
Мне больше интересно, когда SAM без новых ключевых слов ломает существующий код.
когда есть оверлоады, один из которых принимает реализацию интерфейса, другой — функционального типа

Google
Vladimir
31.03.2018
11:18:08
когда есть оверлоады, один из которых принимает реализацию интерфейса, другой — функционального типа
Ну в такой ситуации было бы логичным, что они взаимозаменяемы и можно, например, выбирать какой-то один из них с предупреждением. А уже когда-нибудь потом задепрекейтить такое и сыпать ошибками.

Egor
31.03.2018
12:06:10
Инициирую холиварыч

Там вот в слаке котлинском предлагают ввести возможность перегружать символ пробела

Чтобы можно было писать конструкции типа html {...}

Что-то вроде того

Выглядит как троллинг, но вообще то интересно

Quantum Harmonizer
31.03.2018
12:11:50
Чтобы можно было писать конструкции типа html {...}
такие конструкции уже давно пишут)

Egor
31.03.2018
12:14:57
такие конструкции уже давно пишут)
Непонятно объяснил наверное

а, ну да, я идиот, сниппет недокопировался

Парень ссылается на одну статью, как писать ДСЛ на котлине для построения html-ей, там что-то такое: html { head { title {+"XML encoding with Kotlin"} } // ... }

Mikhail
31.03.2018
12:18:57
Он хочет чтобы туториал по этому линку можно было переписать без плюсиков перед строками

Type-Safe Builders - Kotlin Programming Language https://kotlinlang.org/docs/reference/type-safe-builders.html

Egor
31.03.2018
12:19:06
Да, именно

Чтобы было вот так: html { head { title { "XML encoding with Kotlin" } } // ... }

Mikhail
31.03.2018
12:19:47
Нда, хотя следующее предложение "перегружать dot оператор" позабавнее

Quantum Harmonizer
31.03.2018
12:20:54
перегружать unused expression? :)

Egor
31.03.2018
12:20:55
Это достойно отдельного упоминания, да

Перегружать все

Тимур
31.03.2018
12:27:20
Там вот в слаке котлинском предлагают ввести возможность перегружать символ пробела
красиво еще бы возможность перегружать символы табуляции и перевода строки, и получится полноценный язык Whitespace

Google
Mikhail
31.03.2018
12:30:32
Я думаю, от плюсиков можно избавиться, добавив перегрузку с аргументом ()->String

Тимур
31.03.2018
12:32:03
вообще интересно, кто-нибудь использует kotlin html dsl всерьез, или это больше как игрушка или там что-то быстро сваять на коленке?

Egor
31.03.2018
12:33:11
Несмелое предположение

Мб это заготовка под полноценный котлин реакт?

Тимур
31.03.2018
12:34:51
или пример от вендора: вот смотрите, как можно сделать и кто-то таки запилит котлин реакт

Dumitru
31.03.2018
12:35:28
В математике точно такие же споры, зачем развивать и находить новые формулы.

Quantum Harmonizer
31.03.2018
12:40:43
Это единственный быстрый и не уродливый шаблонизатор, насколько я знаю.

Тимур
31.03.2018
12:40:58
а для чего?

server side?

Quantum Harmonizer
31.03.2018
12:41:16
да

Egor
31.03.2018
12:42:44
Зачем шаблонизатор, если есть клиент сайд рендеринг ? У меня вот знакомый на бутылку Vue.js сел и не жалуется

Тимур
31.03.2018
12:43:26
ну он не совсем шаблонизатор все таки шаблонизатор обычно подразумевает что исходный html редактируешь в оригинале, а туда динамика встраивается верстальщику kotlin html не отдашь

Quantum Harmonizer
31.03.2018
12:44:47
Igor
31.03.2018
13:03:46
А почему не пашет вот такой вот код: https://gist.github.com/komigor/bdcebbff9ed37886f54ac774083e0f4a В when-else пишет что waypoint это Pair<Long, TaskWaypoint>, несмотpя на то, что в этом же when мы собственно waypoint.second пpовеpяем на пpинадлежность конкpетному типу? Это мне память изменяет, или такое действительно pаньше pаботало?

вообще интересно, кто-нибудь использует kotlin html dsl всерьез, или это больше как игрушка или там что-то быстро сваять на коленке?
Только веселился, но в целом мне понpавилось, и если бы меня когда-нибудь занесло в веб, я бы по кpайней меpе испpобовал

Igor
31.03.2018
13:13:49
Они в одном модуле?… Хотя не важно, это не должно работать.
Меня больше pаздpажает в котлине, что Observable<T: A> ни в какую не хочет кастоваться к Observable<A> без дополнительной тавтологии в виде .map { it }

Quantum Harmonizer
31.03.2018
13:17:12
А в джаве не раздражает? :)

Google
Александр
31.03.2018
13:20:33
Есть ли аналогичные это community? Что то у меня с поиском проблемы , та же Java, Android dev, Python

Igor
31.03.2018
13:21:23
Меня больше pаздpажает в котлине, что Observable<T: A> ни в какую не хочет кастоваться к Observable<A> без дополнительной тавтологии в виде .map { it }
Ну так это же ущербность самой джавы и io.reactivex.Observable Был бы это котлин класс с out class Observable<out T> было бы се ок

Igor
31.03.2018
13:22:05
Ай, тьфу, точно. А в rxKotlin будет та же истоpия?

Igor
31.03.2018
13:23:02
Ну так там же только методы расширения, врядли они могут помочь (используюй корутины/каналы, Люк)

Igor
31.03.2018
13:24:05
Ну так там же только методы расширения, врядли они могут помочь (используюй корутины/каналы, Люк)
Да я бы с pадостью, но слишком уж много опеpатоpов там дописывать пpидется вpучную, плюс pельсы на rx уже написаны

Следующий пpоект на fs2 и скалке будет :3

Quantum Harmonizer
31.03.2018
13:25:04
там не нужны операторы

Igor
31.03.2018
13:25:47
там не нужны операторы
в случае с Deferred – я бы не отказался (так ведь там называется вpоде аналог Future?)

Igor
31.03.2018
13:27:12
Deferred НЕ нужен ? (ну рили, он даже не ленивый по умолчанию)

Quantum Harmonizer
31.03.2018
13:28:08
Deferred НЕ нужен ? (ну рили, он даже не ленивый по умолчанию)
Засабмиттить пачку на параллельное выполнение, потом дождаться, например

Igor
31.03.2018
13:28:59
Ну да, но это редкий кейс, который еще много проблем приносит, если хендлить самому (что делать если половина отвались?..)

Alexey
31.03.2018
13:36:47
Igor
31.03.2018
13:37:22
Соболезную ?

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