@kotlin_lang

Страница 685 из 982
Мерлин
24.05.2018
12:44:15
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-hash-map/index.html + делаешь data class c координатами, бежишь по списку, проверяешь наличие координаn с помощью containsKey, если нет таких координат, то кладёшь в мапу, если есть — разрешаешь конфликт

Андрей
24.05.2018
12:45:55
data-то зачем?
модно же

Google
Vishnyakov
24.05.2018
12:47:46
ой, пропустил, а чем дата классы отличаются? их для сериализабельных классов лучше юзать?

Aleksandr
24.05.2018
12:49:10
иммутабельность проще делать

Vishnyakov
24.05.2018
12:49:11
ах ну да

Aleksandr
24.05.2018
12:49:14
через волшебный copy

Андрей
24.05.2018
12:49:21
ой, пропустил, а чем дата классы отличаются? их для сериализабельных классов лучше юзать?
вкрадце toString нормальный, копировать можно и equals/hashcode вменяемые

Vishnyakov
24.05.2018
12:53:14
если нужно просто убрать повторяющиеся, то можно их в список пихать и distinct() сделать
ну да, приятно с хешкодом готовым, этого дейтсвительно не хватало

можно просто в хешсет пихать)

чтоб убрать одинаковые

Андрей
24.05.2018
12:53:35
ну да, приятно с хешкодом готовым, этого дейтсвительно не хватало
главное помнить что наследоваться от дата классов нельзя

так что лучше их аккуратно использовать

Google
Андрей
24.05.2018
12:53:52
по сути только там, где POJO нужен

Quantum Harmonizer
24.05.2018
12:54:18
главное помнить, что hashCode и equals нужны достаточно редко, а наследование не нужно вообще :)

Андрей
24.05.2018
12:57:08
Quantum Harmonizer
24.05.2018
12:57:42
go sealed классы без наследования использовать ?
если бы не ограничение VM, я бы предпочёл, чтобы они были интерфейсами

Андрей
24.05.2018
12:57:54
окей

а что насчет интерфейсов котлиновских с реализацией?

оно тоже не нужно?

Quantum Harmonizer
24.05.2018
13:00:36
Alexey
24.05.2018
13:08:54
если бы не ограничение VM, я бы предпочёл, чтобы они были интерфейсами
А какое ограничение VM мешают сделать его интерфейсом?

Quantum Harmonizer
24.05.2018
13:09:25
А какое ограничение VM мешают сделать его интерфейсом?
Ничто не помешает кому угодно его заимплементить. А вот у sealed class синтетический конструктор.

Андрей
24.05.2018
13:09:29
ага
а наследовать интерфейсы тоже религия не позволяет или норм?

Quantum Harmonizer
24.05.2018
13:09:38
Андрей
24.05.2018
13:09:46
не

я имею ввиду

интерфейс наследующийся от интерфейса

Quantum Harmonizer
24.05.2018
13:10:53
Андрей
24.05.2018
13:11:02
хм, ну ок

Leonid
24.05.2018
13:20:07
Я так понял нет ничего подобного. :(
вроде отвечали про .distinct()

Андрей
24.05.2018
13:30:12
вроде отвечали про .distinct()
ну distinct только уберет все таки дубликаты, а не выведет их

Google
Андрей
24.05.2018
13:30:23
с другой стороны

можно из изначальной коллекции вычесть дистинкнутую

и как раз разница и будет повторами

Leonid
24.05.2018
13:30:49
тогда может groupBy.count сделать

и вывести у кого count > 1

Anton
24.05.2018
17:55:07
Друид?

Beka
24.05.2018
18:04:50
return if (systemState == null) { true } else { val playerStateEvent = systemState!!.playerStateEvent playerStateEvent.playbackState() == CorePlayer.PLAYBACK_ERROR }

как лучше это писать на котлине?

ISkylake
24.05.2018
18:07:19
Даже не знаю.

Но

Я бы написал val state = systemState?.playerStateEvent?.playbackState() if (state === null) true else state == CorePlayer.PLAYBACK_ERROR

Boris
24.05.2018
18:07:34
Друид?
http://druid.io/

Vadim
24.05.2018
18:08:31
return systemState == null || systemState!!.playerStateEvent.playbackState() == CorePlayer.PLAYBACK_ERROR

ISkylake
24.05.2018
18:09:10
Не советовал бы здесь нулл-чек юзать.

Хотяяя. Точно не могу сказать.

Vadim
24.05.2018
18:10:07
даже можно return systemState?.playerStateEvent?.playbackState() == CorePlayer.PLAYBACK_ERROR ?: true

Andrew
24.05.2018
18:10:11
if (state === null) true else state == CorePlayer.PLAYBACK_ERROR -> state === null || state == CorePlayer.PLAYBACK_ERROR, очевидно

ISkylake
24.05.2018
18:10:21
А.

Google
Andrew
24.05.2018
18:10:38
а ?: true идея предложит заменить на === false

Boris
24.05.2018
18:10:53
systemState?.playerStateEvent?.playbackState() != Player.PLAYBACK_ERROR

Vadim
24.05.2018
18:11:07
а ?: true идея предложит заменить на === false
или так, хотя имхо это менее читаемо

ISkylake
24.05.2018
18:11:29
Т.е. подведём итог

val state = systemState?.playerStateEvent?.playbackState() return state === null || state == CorePlayer.PLAYBACK_ERROR Сойдёмся на этом?

Vadim
24.05.2018
18:13:44
пусть будет так

)

ISkylake
24.05.2018
18:14:04
@coder_off ^^^

Beka
24.05.2018
18:14:23
Я чуть по другому написал)

private val isPlayerLocked = systemState?.playerStateEvent?.playbackState() == CorePlayer.PLAYBACK_ERROR

ISkylake
24.05.2018
18:17:16
Как я понял, при нулле ты хочешь вернуть true?

Тогда с твоим вариантом не особо выйдет.

ибо в итоге выйдет null == CorePlayer.PLAYBACK_ERROR

Boris
24.05.2018
18:25:26
Sergey
25.05.2018
07:33:22
Всем доброго дня. Для ktor есть что-то подобное eureka?

Maxim
25.05.2018
09:17:57


Google
Maxim
25.05.2018
09:17:57
Я же правильно понимаю, что != для стрингов сравнивает по значению, не по ссылке? Как проверить что не сходится?

Artem
25.05.2018
09:28:47
Уберу это позор

Dumitru
25.05.2018
09:47:24


(doc_lifecycle.value).toInt() всегда бросает "NumberFormatException", через parseInt(String); все работает, но он деприкетед и пишет что лучше заменить String.toInt().



Maxim
25.05.2018
09:47:57
Отпуск плохо влияет на способность думать) извините за флуд))

Andrew
25.05.2018
09:50:27

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