
Anton
14.03.2018
08:56:08
это ж разные вещи там имя обьекта а не класса

Sergey
14.03.2018
08:59:05

Axrorxo'ja
14.03.2018
08:59:18
Всем привет котлине экстеншин функция как выглядит на ява или через ява нельзя вызывать экстеншин функции

Roman
14.03.2018
09:02:28

Google

Axrorxo'ja
14.03.2018
09:03:41

Maxim
14.03.2018
10:00:42
Ну, как минимум тем, что обращение будет в случае компаньйона Foo.STATIC_FIELD, а в случае объекта Foo.Bar.STATIC_FIELD

Andrew
14.03.2018
10:29:21
> «С чего начать разработку под Android»
Вроде бы оффтоп, я бы предложил в @kotlin_mobile, но там и так 99% людей знают, с чего начинать разработку под Android.

Mikhail
14.03.2018
10:30:13
Судя по темам, начинать надо с багов

Badya
14.03.2018
10:33:26

Nick Senchurin
14.03.2018
11:27:18
а не подскажете, можно ли сгенерировать метод equals где идет сравнение по полям, а то сейчас
override fun equals(other: Any?): Boolean {
return super.equals(other)
}

Mikhail
14.03.2018
11:27:54

Nick Senchurin
14.03.2018
11:28:35
есть дата класс, в ктором надо поколдовать над equals

Mikhail
14.03.2018
11:29:17
все колдунства только ручками

Nick Senchurin
14.03.2018
11:29:18
ну в общем это скорее вопрос автокомплита в студии
ясно, спасибо
просто вроде раньше идея мне генерировала equals со всеми сравнениями (на тип, на нулл и тд) , а сейчас почему то только return super.equals(other)

Kirill
14.03.2018
11:30:49

Google

Nick Senchurin
14.03.2018
11:30:57
3

Quantum Harmonizer
14.03.2018
11:31:04
(хотя в датаклассах он и так генерируется, если не переопределять)

Mikhail
14.03.2018
11:31:24
скорее тут проблема в том, что ты генеришь для дата класса

Nick Senchurin
14.03.2018
11:31:29
я убирал дата, тоже самое

Kirill
14.03.2018
11:31:44

Quantum Harmonizer
14.03.2018
11:31:51

Kirill
14.03.2018
11:31:56
cmd+N на маке, кажется ctrl+N на других ОС

Nick Senchurin
14.03.2018
11:31:58
ну так и делал

Quantum Harmonizer
14.03.2018
11:32:14

Nick Senchurin
14.03.2018
11:32:18
в общем ладно, спасибо, не стоит эта тема стольких обсуждений )

Pavlo
14.03.2018
11:32:19
А зачем генерировать equals на data классе?
Опередили

Anton
14.03.2018
11:32:44
ну например если там массив

Quantum Harmonizer
14.03.2018
11:32:53

Anton
14.03.2018
11:33:10
не знаю может кому то хочется)

Nick Senchurin
14.03.2018
11:37:22
в общем да, был правильный ответ про дату, генерит equals с полями для обычных классов
спасибо )

Konstantine
14.03.2018
11:52:35

Google

Quantum Harmonizer
14.03.2018
11:52:51

Alexey
14.03.2018
11:52:56

Konstantine
14.03.2018
11:53:05

Quantum Harmonizer
14.03.2018
11:53:15

Alexey
14.03.2018
11:53:28

Konstantine
14.03.2018
11:53:44
они изменяемые
Это не всегда плохо, иногда данные должны быть изменяемые

Alexey
14.03.2018
11:53:47
Круг задач, где нужен массив, крайне узок

Konstantine
14.03.2018
11:53:55

Quantum Harmonizer
14.03.2018
11:54:40

Alexey
14.03.2018
11:54:59

Konstantine
14.03.2018
11:55:20

Alexey
14.03.2018
11:55:38
Вообще впринципе когда есть динамика

Руслан
14.03.2018
11:56:20

Konstantine
14.03.2018
11:56:50

Руслан
14.03.2018
11:57:21

Quantum Harmonizer
14.03.2018
11:57:24
Массивы хороши во внутренних API, как мне кажется.

Kirill
14.03.2018
11:57:47
или если примитивы хранить надо (много)

Konstantine
14.03.2018
11:57:59

Quantum Harmonizer
14.03.2018
11:58:15

Google

Руслан
14.03.2018
11:58:32

Nameless
14.03.2018
11:58:41

Konstantine
14.03.2018
11:58:43
Вот тут всё правильно.)
О чем я и говорю. А то прям так яро против массивов все кричат. Никто ведь и не призывает только на них.

Quantum Harmonizer
14.03.2018
11:59:04

Руслан
14.03.2018
11:59:24
Я вообще хотел чтобы кто-нибудь сказал GNU Trove

Quantum Harmonizer
14.03.2018
11:59:44

Alexey
14.03.2018
12:00:02
Массив массивов - это дичь, в С и потомках - это сахар и там это ок, а вот в jvm based языках это совсем не так

Admin
ERROR: S client not available

Kirill
14.03.2018
12:01:08

Руслан
14.03.2018
12:01:31
Ну вот, чтобы идея не жрала память ;)

Alexey
14.03.2018
12:01:48
Обычно когда люди берут массив - это значит что всё остальное не устроило или по производительности или по памяти. А в твоём кейсе с игрой ну хз

Quantum Harmonizer
14.03.2018
12:01:51

Alexey
14.03.2018
12:02:01
Ни то ни то не выиграл

Igor
14.03.2018
12:03:18
А в чем прикол? Типа там нагенерили отдельных классов под каждый примитив?

Quantum Harmonizer
14.03.2018
12:03:31

Igor
14.03.2018
12:04:01
Да зачем, сидим ровно и ждем value-types (еще чуть чуть подождать ?)

Quantum Harmonizer
14.03.2018
12:04:12
Есть видео где Шипилёв и Куксенко показывают бенч, где медленная j.u.HashMap<Integer, Object> работает с такой же скоростью, что и Trove.

Alexey
14.03.2018
12:04:42
А какая мапа быстрее хеш мапы?
В общем случае конечно же

Google

Quantum Harmonizer
14.03.2018
12:05:00

Alexey
14.03.2018
12:05:33
Есть чо по реализации?

Quantum Harmonizer
14.03.2018
12:06:40
Хешсет есть

Alexey
14.03.2018
12:07:17
Хешсет == хешмап

Quantum Harmonizer
14.03.2018
12:07:35

Руслан
14.03.2018
12:07:48
> The Trove maps/sets use open addressing instead of the chaining approach taken by the JDK hashtables

Quantum Harmonizer
14.03.2018
12:08:29
Хешсет == хешмап
Вот тут есть кастомный хешсет для лонгов https://github.com/TieToGather/Blitz

Руслан
14.03.2018
12:14:05
Вот тут про Trove Алексей рассказывал (~14 минута)
https://www.youtube.com/watch?v=DZgbKcSRTgg
Вообще у него самые топовые на мой вкус выступления:
https://www.youtube.com/watch?v=YzWr9CN6cGQ
https://www.youtube.com/watch?v=Ra2RSsyO4XU

Alexey
14.03.2018
12:21:18
А вы про примитивы
Я про общий случай говорил

Quantum Harmonizer
14.03.2018
12:47:13

Igor
14.03.2018
15:14:53
Ребят, еще 2 места осталось, последний шанс ? https://www.meetup.com/St-Petersburg-Kotlin-User-Group/events/248293943/


Ivan
14.03.2018
15:54:18
final Agent agent = new Agent.Iterative(
new Array<Agent>(
new Understands(
this.github,
new QnSince(
49092213,
new QnReferredTo(
this.github.users().self().login(),
new QnParametrized(
new Question.FirstOf(
new Array<Question>(
new QnIfContains("config", new QnConfig(profile)),
new QnIfContains("status", new QnStatus(talk)),
new QnIfContains("version", new QnVersion()),
new QnIfContains("hello", new QnHello()),
new QnIfCollaborator(
new QnAlone(
talk, locks,
new Question.FirstOf(
new Array<Question>(
new QnIfContains(
"merge",
new QnAskedBy(
profile,
Agents.commanders("merge"),
new QnMerge()
)
),
new QnIfContains(
"deploy",
new QnAskedBy(
profile,
Agents.commanders("deploy"),
new QnDeploy()
)
),
new QnIfContains(
"release",
new QnAskedBy(
profile,
Agents.commanders("release"),
new QnRelease()
)
)
)
)
)
)
)
)
)
)
)
),
new StartsRequest(profile),
new RegistersShell(
"b1.rultor.com", 22,
"rultor",
IOUtils.toString(
this.getClass().getResourceAsStream("rultor.key"),
CharEncoding.UTF_8
)
),
new StartsDaemon(profile),
new KillsDaemon(TimeUnit.HOURS.toMinutes(2L)),
new EndsDaemon(),
new EndsRequest(),
new Tweets(
this.github,
new OAuthTwitter(
Manifests.read("Rultor-TwitterKey"),
Manifests.read("Rultor-TwitterSecret"),
Manifests.read("Rultor-TwitterToken"),
Manifests.read("Rultor-TwitterTokenSecret")
)
),
new CommentsTag(this.github),
new Reports(this.github),
new RemovesShell(),
new ArchivesDaemon(
new ReRegion(
new Region.Simple(
Manifests.read("Rultor-S3Key"),
Manifests.read("Rultor-S3Secret")
)
).bucket(Manifests.read("Rultor-S3Bucket"))
),
new Publishes(profile)
)
);
Едриииить, вот это колбасня
а главное, что там кто-то кричал про фабрики фуфуфу, с этой колбаснёй же фабрик нужно в 10 раз больше, потому что очевидно такую простыню каждый раз писать как-то не охота
вообще мне не очень понятна любовь к Бугаенко в этом чате, вы же на котлине пишете, тут всё на свободно болтающихся или экстеншен функциях построено, что есть прямая аналогия Util-методов, с которыми, кажись, Егор борется и вообще это не ООП ни разу


Boris
14.03.2018
16:02:32

Ivan
14.03.2018
16:04:22

Boris
14.03.2018
16:06:03

Alexey
14.03.2018
16:09:31
Егора мало где любят вообщем то