@kotlin_lang

Страница 924 из 982
Quantum Harmonizer
06.10.2018
12:07:42
List<String>[] ?

Boris
06.10.2018
12:07:48
Ну, это должны быть очень большие сиквенсы, я бы тогда вообще в бд генерил хранимкой)
а я разве говорил про хранение? оно как раз может быть таким большим, потому что не хранится нигде, про этот сайдэффект просто нужно знать, вцелом очевидно, что дистинкт без вычитывания буде какой-то кеш хранить

Google
Boris
06.10.2018
12:08:41
Что такое параметризованный массив? String[] - это параметризованный массив?
причем тут синтаксис джавы, если я про жвм говорю

Vladimir
06.10.2018
12:09:10
причем тут синтаксис джавы, если я про жвм говорю
Ок, [Ljava.lang.String; - это параметризованный массив?

Boris
06.10.2018
12:09:51
это вроде и есть стирание
нет, стирание только у дженериков, а массивы не параметризируются, они всегда имеют заранее определенный тип

Quantum Harmonizer
06.10.2018
12:10:28
я тут ворвался, почитаю-ка тред всё-таки

Boris
06.10.2018
12:10:39
Ок, [Ljava.lang.String; - это параметризованный массив?
нет, массив имеет свой тип, в отличии от женерика, который стирается

Vladimir
06.10.2018
12:10:40
ты показываешь бинарную сигнатуру, в которой в принципе нет тайп-параметров
Так вот в том-то и дело, что в ней нет дженериков, т.к. для JVM их нет. А вот массивы разных типов там вполне есть.

Boris
06.10.2018
12:11:02
ну да, только вот ничего там не стирается

Vladimir
06.10.2018
12:11:28
нет, массив имеет свой тип, в отличии от женерика, который стирается
Так это же и есть Array<String>, String - это не тип массива что ли?

Boris
06.10.2018
12:11:58
> Котлин мог бы прикинуться, что такой особенности нет, и вместо Array<A> использовать Object[] я почему-то был уверен, что котлин так и делает.. и мне даже казалось, что я это исопльзовал, но наверное это меня плющит

Так это же и есть Array<String>, String - это не тип массива что ли?
тип, да, только он не стирается ? и это котлин

Google
Nameless
06.10.2018
12:14:26
что за .fun?

Boris
06.10.2018
12:14:40
смысл моего сообщения был в том, что параметризировать массив не выйдет, он всегда требует предопределенного типа и эта особенность перекочевала в котлин-нейтив несмотря ни на то, что там этой необходимости нет

Алексей
06.10.2018
12:14:43
@themishkun вопрос по тому же алгоритму. По идее, он идеально распараллеливается - запускать корутины на каждую sort операцию внутри и ждать. Но почему-то не получается быстрее - наоборот, получается уменьшение производительности

Nameless
06.10.2018
12:14:44
кто может разжевать?

Vladimir
06.10.2018
12:14:58
тип, да, только он не стирается ? и это котлин
Ну вот. Если тип уже стёрт, т.е. в метод прилетел какой-то Array<T>, а что такое T уже не узнать, массив создать нельзя, т.к. для создания массива нужно знать его точный тип, либо это на деле будет Array<Any>, а не Array<T>.

Nameless
06.10.2018
12:15:21
val whatAmi: Unit = { -> }.fun Function<*>.(){}()

пофиксил

Жабра
06.10.2018
12:15:27
Какая диичь, какаая дииичь

Nameless
06.10.2018
12:15:40
как эта дичь работает?

Quantum Harmonizer
06.10.2018
12:15:44
val whatAmi: Unit = { -> }.fun Function<*>.(){}()
И как это понимать?

Nameless
06.10.2018
12:16:03




а так норм

Жабра
06.10.2018
12:16:32
А что ты вообще хочешь сделать?

Алексей
06.10.2018
12:16:37
А что нужно-то?

Nameless
06.10.2018
12:17:09
А что нужно-то?
понять как это работает это из паззлеров кекса, и он не успел его разжевать оставил на домашку

Алексей
06.10.2018
12:17:24
вот оно как

Google
Azure
06.10.2018
12:17:51
http://openjdk.java.net/jeps/325 че пацаны, котлин?)

Vladimir
06.10.2018
12:17:58
так я об этом и написал, о чем спор-то?
Я написал, что вся проблема в стирании дженериков - их нет в рантайме, а у массивов тип есть. Вы написали, что это ничего не объясняет.

Nameless
06.10.2018
12:18:21
http://openjdk.java.net/jeps/325 че пацаны, котлин?)
такими темпами никогда не догонят)

Жабра
06.10.2018
12:18:22
понять как это работает это из паззлеров кекса, и он не успел его разжевать оставил на домашку
Не все кишки языка нужно вытаскивать наружу. То что выше - рили дичь

Quantum Harmonizer
06.10.2018
12:18:28
Догадки. fun Function<*>.() {} — анонимная extension-функция. { -> }.анонимка() — вызов анонимной функции

Boris
06.10.2018
12:19:06
Я написал, что вся проблема в стирании дженериков - их нет в рантайме, а у массивов тип есть. Вы написали, что это ничего не объясняет.
нет, про рантайм там и слова не было, только про стирание, но стирание тут причем, если вопрос в том, как у жвм массивы устроены внутри жвм?

Quantum Harmonizer
06.10.2018
12:19:20
Не все кишки языка нужно вытаскивать наружу. То что выше - рили дичь
да вроде не кишки, просто упоротый синтаксис)

Vladimir
06.10.2018
12:19:43
нет, про рантайм там и слова не было, только про стирание, но стирание тут причем, если вопрос в том, как у жвм массивы устроены внутри жвм?
Стирание при том, что если бы дженерики не стирались, это можно было бы сделать, т.к. в рантайме был бы известен тип. См. C#

Алексей
06.10.2018
12:19:43
Вызов метода, в который как this принимается Function<*> (который не используется). брррр....

Vladimir
06.10.2018
12:21:26
Alexander
06.10.2018
12:44:02
такими темпами никогда не догонят)
Планы догнать и перегнать. Хотят паттерн матчинг. Бреслав запасся попкорном (где-то в интервью было).

Nameless
06.10.2018
12:44:27
Не получится

Если конечно на обратную совместимость не забьют

Bogdan
06.10.2018
12:45:39
Alexander
06.10.2018
12:45:42
Ну пока это просто копия удачного синтаксиса котлин. Теми темпами, которыми джавовские jep-ы вводятся, мы не дождемся

Bogdan
06.10.2018
12:47:14
http://openjdk.java.net/jeps/325 че пацаны, котлин?)
тебе нужен паттерн матчинг ?

Google
Alexander
06.10.2018
12:50:15
Вообще нет

Я уже писал, меня больше интересует Valhalla и Panama. Может быть loom, но до него точно не доживу

Я на котлин довольно плотно пересел.

Bogdan
06.10.2018
12:53:26
Вообще нет
ты мне ? я не у тебя српашивал

Alexander
06.10.2018
12:53:35
а

Там скорее вопрос в том, синтаксис целиком из котолин взят

Алексей
06.10.2018
13:01:03
А почему в main runBlocking может не разблокироваться?

Admin
ERROR: S client not available

Alexander
06.10.2018
13:08:04
А почему в main runBlocking может не разблокироваться?
оно вообще может не разблокироваться. Не зависимо от того, где оно запущено

Алексей
06.10.2018
13:08:22
ясненько

ну я решил с помощью Runtime.runtime.exit(0)

благо, в данном случае некритично

Alexander
06.10.2018
13:10:34
Это как правило весьма плохое решение. Где-то что-то в бесконечный цикл уходит

Когда на тредах, это бывает просто тред или экзекутор весит и ждет, пока его закроют, но на корутинах такого быть не должно

Алексей
06.10.2018
13:11:25
ну там такая ситуация, что всё, что нужно, точно отрабатывает

Alexander
06.10.2018
13:12:01
Все равно плохо. Форсированный выход может чего-то ломать. Лучше, руками закрыть головной джоб.

Алексей
06.10.2018
13:14:27
опять же, а какие варианты? как закрывать этот job руками? В какой момент?

Google
Алексей
06.10.2018
13:15:02
только если java синхронизацию делать

Alexander
06.10.2018
13:15:16
А что там Thread.sleep делает??!!

Вот из-за него все и подвисает

Алексей
06.10.2018
13:15:36
А что там Thread.sleep делает??!!
Добавил проверить, что оно так работает:D

Alexander
06.10.2018
13:15:49
а

Алексей
06.10.2018
13:15:53
Вот из-за него все и подвисает
его не было до того, как я решил через launch делать

Alexander
06.10.2018
13:15:54
я уж испужался

Жабра
06.10.2018
13:16:03
Alexander
06.10.2018
13:16:36
Но с ним приложение никогда не будет нормально завершаться

Алексей
06.10.2018
13:16:47


Alexander
06.10.2018
13:16:53
Более того, один тред будет навечно блокирован

Алексей
06.10.2018
13:17:20
Alexander
06.10.2018
13:17:23
А где цикл-то?

Алексей
06.10.2018
13:17:24
я правда не знаю

А где цикл-то?
там рекурсивная функция

Alexander
06.10.2018
13:17:45
условие останова где?

Алексей
06.10.2018
13:18:07
внутри она вызывает себя в launch, окончания которого дожидается

секунду

блин, там много кода

Alexander
06.10.2018
13:18:34
ладно, не надо

Алексей
06.10.2018
13:18:57


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