
Andrew
18.10.2018
11:26:21

Konstantin
18.10.2018
11:27:37

Mikhail
18.10.2018
11:28:00
Ещё вот может пригодиться
https://github.com/ExpensiveBelly/RxKata/blob/master/src/main/java/kotlincollections/KotlinCollectionsExercises.kt
Не совсем то, конечно

Google

Roman
18.10.2018
11:28:34
https://kotlinlang.org/docs/tutorials/koans.html

Konstantin
18.10.2018
11:30:21

Mikhail
18.10.2018
11:33:15
Спасибо
Так, слушай, а мы, случайно, не работали вместе? :)

Konstantin
18.10.2018
11:33:48

Nameless
18.10.2018
11:50:48
а в идее можно как то померить фпс текстового редактора? скажем на макоси

dimiii
18.10.2018
11:59:20

Nameless
18.10.2018
12:01:41

dimiii
18.10.2018
12:02:14
Фатин как раз про скролл писал ? и код выложил

Kirill
18.10.2018
12:21:17

Артем
18.10.2018
13:33:03

Egor
18.10.2018
13:35:27
const - это константа времени компиляции. Компилятор умеет подставлять такие константы сразу на места, чтобы сэкономить вызовы

Артем
18.10.2018
13:37:15
спасибо :)

Google

Di7aK
18.10.2018
13:47:34
константы надо где объявлять?
companion object или как
ибо так его не хавает

Mikhail
18.10.2018
13:51:01
Где ты объявляешь ее?

Di7aK
18.10.2018
13:51:14
в корне класса
а надо?

Костя
18.10.2018
13:52:45
хм
а JetBrains часто забивают на свои issues ?
https://youtrack.jetbrains.com/issue/KT-22139
нашел даже таску которой полгода уже в статусе open
собственно как раз про эту аннотацию что я писал, @Parcelize похоже придется отказаться от неё, но конечно за полгода хотелось бы видеть ответ какой, будет ли это делаться, если нет то почему (

Mikhail
18.10.2018
14:00:01

Di7aK
18.10.2018
14:00:21
зачем мне классовая константа на весь пакет

Алексей
18.10.2018
14:11:10

Quantum Harmonizer
18.10.2018
14:12:58

Bogdan
18.10.2018
14:19:45

Leonid
18.10.2018
14:20:58

Denis
18.10.2018
14:34:59
Добрый день.
Подскажите, можно ли со в data class сделать экстешен?
Т.е. есть следующий кейс: Есть дата класс, у которого около 5 аргументов в конструкторе. Один из аргументов должен высчитываться на основе некоторых данных.
Хотел попробовать сделать экстеншен в файле data class`a и при создании этого дата класса как-то обращаться к его расширению и вычислять этот аргумент.
НО чет не получается)

Google

Denis
18.10.2018
14:35:14
возможно ли вообще такое? если нет, то как правильнее будет сделать?

Kirill
18.10.2018
14:37:45
Экстеншен вызывается на инстансе какого--то класса
В момент вызова конструктора инстанса ещё нет

Алексей
18.10.2018
14:38:09
Я верно понимаю, что const в компил тайме будет преобразовано в значение в каждом месте вызова?

Denis
18.10.2018
14:38:29

Kirill
18.10.2018
14:38:38

Quantum Harmonizer
18.10.2018
14:38:50

Kirill
18.10.2018
14:38:50
Ну либо ещё один конструктор объявить

Dmitry
18.10.2018
14:39:09

Denis
18.10.2018
14:39:54

Алексей
18.10.2018
14:40:11

Dmitry
18.10.2018
14:40:50
Экстеншны нужны чужие классы расширять. Нет смысла теперь пихать их везде вместо нормальных виртуальных функций и пропертей

Denis
18.10.2018
14:42:04
разве здесь нельзя создать 1 раз экстеншен
и потом просто его юзать?

Алексей
18.10.2018
14:43:02
Помню, для Rectangle создал экстеншенами x1, y1, x2, y2
Какой это был кайф
штука вроде ниочемная, но в джаве сделать это хорошо просто не вышло бы - в итоге получилась бы какая-нибудь фигня типа getX1(Rectangle), или вообще еще класс писать

Google

Kirill
18.10.2018
14:45:32

Алексей
18.10.2018
14:45:37
Имхо:)

Костя
18.10.2018
14:45:57
Придется че-то кастылить руками (

Denis
18.10.2018
14:46:37
как-то так

Костя
18.10.2018
14:47:37

Kirill
18.10.2018
14:47:38
По-моему, для data-классов не запрещается экстеншен написать

Денис
18.10.2018
14:48:38

Quantum Harmonizer
18.10.2018
14:49:55
да конечно, экстеншенам всё равно на дата/не дата

Костя
18.10.2018
14:51:53
Я неочень понимаю зачем для своего класса писать экстеншен, обычно пишу их для классов которые нельзя менять(расширяю функционал)
Можно пример ?)

Алексей
18.10.2018
14:52:24

Quantum Harmonizer
18.10.2018
14:52:25

Bogdan
18.10.2018
14:52:32
DSL всякий

Костя
18.10.2018
14:52:49
Интерфейс соглашусь
И дсл

Алексей
18.10.2018
14:52:58
Не всё, что ты хочешь с ним делать, напрямую отвечает его назначению:) ну и да, интерфейсы

Костя
18.10.2018
14:53:12
Но просто для класса я бы сделал метод

Google

Denis
18.10.2018
14:53:51
дата класс имет свои проперти.
Есть значение, которое нужно вычислять основываясь на этих проперти И на других переменных, которые не относятся к этому дата классу

Bogdan
18.10.2018
14:53:54
ну еще когда методы нужны в определенном пакете, имхо

Denis
18.10.2018
14:54:11
а экстеншен может принимать на вход эти переменные из вне

Quantum Harmonizer
18.10.2018
14:54:14

Костя
18.10.2018
14:54:28

Denis
18.10.2018
14:54:31
как по мне, лучше 1 раз написать экстеншен, чем 10 раз писать код по вычислению значения

Костя
18.10.2018
14:54:49
Сделать метод внутри класса
Чтобы объекты могли юзать его

Алексей
18.10.2018
14:55:08
Но просто для класса я бы сделал метод
Имхо, в дата классе кроме данных и некоторых их представлений (ключики, проверяющие что-то в одном из полей, например) ничего быть не должно, а значит любая вспомогательная штука, как-то обрабатывающая данные класса должна быть снаружи:)

Костя
18.10.2018
14:55:25
Это тот же экстеншен только лежит в классе самом, а не отдельно
Далее в дата классе
А не экстеншен

Quantum Harmonizer
18.10.2018
14:57:40

Костя
18.10.2018
14:57:46
Верно
Вопрос вкуса, ну а с интерфейс согласен

Bogdan
18.10.2018
15:00:36

Quantum Harmonizer
18.10.2018
15:03:07

Dmitry
18.10.2018
15:03:12
> Можно пример ?)
У вас большая кодовая база, и есть некоторый класс, который очень много где используется. В некоторых участках кода от этого класса может хотеться весьма специфичных вещей, но если запихнуть все такие функции в сам класс, он просто взорвется.
На самом деле это применимо не только к большим кодобазам, просто на них более нагляднее. Не каждый метод, который можно вызывать на инстансе класса, является определяющим поведение этого класса. Такие методы можно и нужно выносить в экстеншены, и при этом сам класс будет оставаться чистым и понятным.