@kotlin_lang

Страница 581 из 982
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
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
Судя по темам, начинать надо с багов

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

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)

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
я убирал дата, тоже самое

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

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
Круг задач, где нужен массив, крайне узок

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
Не делаю ее каждый день. Но когда надо - используют другую структуру данных.
И переписываешь существующие API чтобы вместо Array прокидывать List?

Konstantine
14.03.2018
11:56:50
И переписываешь существующие API чтобы вместо Array прокидывать List?
Нет. Я массивы использую только когда точно знаю, что они мне там подойдут.

Руслан
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
Ну тогда такой вопрос: "Когда точно нужны массивы?"
Вот недавно делал в приложении реализацию игры три в ряд. Поле хранил в массиве-массивов. Зачем мне там лист?

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

зачем тебе массив массивов если можно хранить в одном массиве?
Проще логически реализовывается. Обращался к элементу по Х и Y

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

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

Admin
ERROR: S client not available

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

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

Quantum Harmonizer
14.03.2018
12:01:51
Я вообще хотел чтобы кто-нибудь сказал GNU Trove
Вообще, мне java.util.интерфейсыКолекций кажутся перегруженными.

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

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

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-методов, с которыми, кажись, Егор борется и вообще это не ООП ни разу

Ivan
14.03.2018
16:04:22
Я бы остановился на: "мне вообще не очень понятна любовь к Бугаенко" ?
это-то да, просто мне периодически попадаются ребята из этого чата которые топят за "угнетаемого Бугаенко" в чатике по JPoint, мол как же так, такой классный докладчик, а вы его не пускаете нести светлые мысли в массы

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

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