
Quantum Harmonizer
09.10.2018
08:00:34

Alex
09.10.2018
08:06:56

Alexander
09.10.2018
08:07:38
Что, с тех пор как теормех закончился?

dimiii
09.10.2018
08:08:40

Google

Bogdan
09.10.2018
08:08:57

Daniil
09.10.2018
08:10:41

Alexander
09.10.2018
08:11:39

Bogdan
09.10.2018
08:12:52

Daniil
09.10.2018
08:14:36

Egor
09.10.2018
08:15:58
Да нет как бы, сейчас бы в 2018 тратить время на точки с запятыми в самых неожиданных местах
Не так уж субъективно

Daniil
09.10.2018
08:16:12

Bogdan
09.10.2018
08:19:48

Konstantine
09.10.2018
08:26:35
Там вроде об идеальности речи нет.
А то за бабки делать вид, что дерьмовая технология крута - какая то проституция:)

Andrey
09.10.2018
08:38:04


Alexandr
09.10.2018
08:38:36

Google

Alexandr
09.10.2018
08:38:47
и там и там есть плюсы/минусы

Алексей
09.10.2018
08:41:07
А зачем data классы добавляют в класс componentN ?

Quantum Harmonizer
09.10.2018
08:41:45

dimiii
09.10.2018
08:41:49

eshch
09.10.2018
08:49:31

Алексей
09.10.2018
08:50:55
классная штука

eshch
09.10.2018
08:52:58

Alexander
09.10.2018
08:53:36
Каждый первый. По-моему сторонников не было
Собственно, обсуждение было избыточным.

dimiii
09.10.2018
08:54:11
Давайте что-то другое обсуждать

Alexander
09.10.2018
08:54:14
В смысле объема

Alexander
09.10.2018
08:59:20
Ради интереса. Как вам безаргументный main из Kotlin 1.3? (Считаете, что важно, пофиг или не понравилось)
Немного схожа по идеологии фича с тем, что до этого обсуждали (loop в std-либе)

Andrey
09.10.2018
09:00:21

Alexander
09.10.2018
09:00:30
В принципе да, но не совсем, тоже не освсем нужно, но область применения сильно шире

Andrey
09.10.2018
09:01:41
Плюс к тому, безаргументный main не получится написать в виде однострочной ФВП, а бесконечный цикл - легко.

Алексей
09.10.2018
09:05:22

Alexander
09.10.2018
09:24:01
Щас компилировал проект, словил чего-то несусветное:
e: java.lang.IllegalStateException: Backend Internal error: Exception during code generation
Cause: Back-end (JVM) Internal error: wrong code generated
org.jetbrains.kotlin.codegen.CompilationException Back-end (JVM) Internal error: Couldn't transform method node:
calculateLU (Lscientifik/kmath/operations/Field;)Lkotlin/Pair;:
и километр байткода. Надо наверное писать issue, но не знаю с какого конца начать

Алексей
09.10.2018
09:26:00

Google

Mikhail
09.10.2018
09:26:09
а как лучше Array<Long>? привести к Array<Long?>?

Alexander
09.10.2018
09:26:42
Просто ясно, что ошибка не будет воспроизводится в простом случае. Ну кину ссылку на комит в гитхабе.

Quantum Harmonizer
09.10.2018
09:26:53

Mikhail
09.10.2018
09:26:56
а если мне надо?

Alexander
09.10.2018
09:27:00
Будет гарантированный дополнительный боксинг

Quantum Harmonizer
09.10.2018
09:27:06

Mikhail
09.10.2018
09:27:09
пофиг на боксинг

Alexander
09.10.2018
09:28:03
Если надо лучше сделать лист, но если совсем приспичит, то можно map{it as Long?}.toTypedArray()

Mikhail
09.10.2018
09:28:05
мне нужно выполнять код для каждого айди из этого массива, если ничего нет, то один раз для null

Alexander
09.10.2018
09:29:06
Для нулябельных объектов массив делать не актуально. Все равно размещение на куче

Quantum Harmonizer
09.10.2018
09:29:18

Quantum Harmonizer
09.10.2018
09:31:19
другое поведение:
if (arrayOfLongs.isNullOrEmpty()) runMe(null) else arrayOfLongs.forEach(::runMe)

Mikhail
09.10.2018
09:32:45

Quantum Harmonizer
09.10.2018
09:33:00

Mikhail
09.10.2018
09:33:20
пустого быть не должно
массива не будет

dimiii
09.10.2018
09:38:17
Мечтаю о хорошей книге по корутинам. О Structured concurrency, о паттернах, с конкретными примерами и с нескучным обсуждением всех загадочных параметров в конструкторах и тд итп

Alexander
09.10.2018
09:39:11
Так рано еще книги писать, тут еще не все устоялось.

Mikhail
09.10.2018
09:40:33

Google

Mikhail
09.10.2018
09:41:49
ок, нашел читаемый и работающий вариант
(places ?: arrayOfNulls<Long?>(1)).forEach({ })
меня смущает, что я не могу в переменную типа Array<Long?> положить Array<Long>

Bogdan
09.10.2018
09:43:35

Quantum Harmonizer
09.10.2018
09:43:53

Mikhail
09.10.2018
09:44:30
это магия как называется?

Quantum Harmonizer
09.10.2018
09:44:44
в Java — ? extends Long

Mikhail
09.10.2018
09:46:31
т.е. Long наследуется от Long? ?

Quantum Harmonizer
09.10.2018
09:46:57

Admin
ERROR: S client not available

Alexander
09.10.2018
09:49:10
А это работает? Массивы же вроде инвариантны. А почему именно масив, почему не список?

Quantum Harmonizer
09.10.2018
09:50:48

Alexander
09.10.2018
09:51:02
В котилне инвариантны

Quantum Harmonizer
09.10.2018
09:51:17
да, потому что массивы в котлине — дженерики

Alexander
09.10.2018
09:51:34
а, ну да
> Note: unlike Java, arrays in Kotlin are invariant. This means that Kotlin does not let us assign an Array<String> to an Array<Any>, which prevents a possible runtime failure (but you can use Array<out Any>, see Type Projections).
но непонятно зачем

Andrey
09.10.2018
09:52:05
Зато List в Kotlin ковариантен

Quantum Harmonizer
09.10.2018
09:52:15

Google

Alexander
09.10.2018
09:52:16
ыменно

Алексей
09.10.2018
09:52:28

Alexander
09.10.2018
09:52:36
Там лонги

Алексей
09.10.2018
09:52:44

Quantum Harmonizer
09.10.2018
09:53:02

Andrey
09.10.2018
09:53:10

Sergey
09.10.2018
09:53:15
ktor 1.0 alpha тегнули?

Алексей
09.10.2018
09:53:28

Andrey
09.10.2018
09:53:36

Alexander
09.10.2018
09:53:41
есть MutableList

Алексей
09.10.2018
09:53:50
А если говорить о рефлексии - то вообще никто ничего не гарантирует

Andrey
09.10.2018
09:54:00

Quantum Harmonizer
09.10.2018
09:54:05
List при этом вполне может быть MutableList, который изменяет кто-то другой
это как val, который тоже не про иммутабельность

Алексей
09.10.2018
09:54:44

Alexander
09.10.2018
09:55:17
Я вообще не про это. @Wizzardo хочет писать в массив 'Long?'. Не нонятно зачем. Списки для этого удобнее

Quantum Harmonizer
09.10.2018
09:55:40

Andrey
09.10.2018
09:56:15
List при этом вполне может быть MutableList, который изменяет кто-то другой
Ну тут идея в том, что так как использующий List может из него только читать, то можно List сделать ковариантным.
Читатель - ковариант, так как потребитель супер типа может потреблять и тип.
Писатель - контравариант, так как в роли производителя типа можно использовать производитель подтипа.
Читатель + писатель - инвариант

Алексей
09.10.2018
09:56:19

Bogdan
09.10.2018
09:56:30

Quantum Harmonizer
09.10.2018
09:57:01
unmodifiableList(ArrayList(someList)) — вот она

Mikhail
09.10.2018
09:57:26