@kotlin_lang

Страница 957 из 982
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

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
а в идее можно как то померить фпс текстового редактора? скажем на макоси
fps текстового редактора - это такое себе. А вот два последних поста могут быть вполне релевантны https://pavelfatin.com/

Nameless
18.10.2018
12:01:41
fps текстового редактора - это такое себе. А вот два последних поста могут быть вполне релевантны https://pavelfatin.com/
почитаю спс, попробую понять почему такое себе ? немного неожиданно будет если вдруг окажется что идея перерисовывает 60 раз в секунду а скролл тормозит

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
вынести за пределы класса
тогда она будет в пакете а надо то в классе

зачем мне классовая константа на весь пакет

Quantum Harmonizer
18.10.2018
14:12:58
а JetBrains часто забивают на свои issues ?
Ну, соотношение числа issues к числу разработчиков настолько огромно, что быстро исправить всё невозможно.

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
возможно ли вообще такое? если нет, то как правильнее будет сделать?
Можно посмотреть в сторону дефолтных значений аргументов

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

Алексей
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
разве здесь нельзя создать 1 раз экстеншен
В котлине экстеншен - это функция в коде, а не объект в рантайме, так что "создать 1 раз экстеншен" - не ложится на терминологию, нужно переформулировать

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

Denis
18.10.2018
14:46:37
В котлине экстеншен - это функция в коде, а не объект в рантайме, так что "создать 1 раз экстеншен" - не ложится на терминологию, нужно переформулировать
окей, неправильно выразился. Не создать, а написать экстешнен, который в будущем в разных местах помогает вычисслять значения по инстанту дата класса

как-то так

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

Денис
18.10.2018
14:48:38
По-моему, для data-классов не запрещается экстеншен написать
Ну если сам компилятор ограничений не ставит, по семантике и реализации дата-классов и экстеншн-методов проблем это создавать не должно, кажется.

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

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

Можно пример ?)

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
Можно пример ?)
member-extension ещё

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
> Можно пример ?) У вас большая кодовая база, и есть некоторый класс, который очень много где используется. В некоторых участках кода от этого класса может хотеться весьма специфичных вещей, но если запихнуть все такие функции в сам класс, он просто взорвется. На самом деле это применимо не только к большим кодобазам, просто на них более нагляднее. Не каждый метод, который можно вызывать на инстансе класса, является определяющим поведение этого класса. Такие методы можно и нужно выносить в экстеншены, и при этом сам класс будет оставаться чистым и понятным.

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