
Alexander
21.09.2018
08:05:22
пока нет. Фокус на json

Vladislav
21.09.2018
08:06:02

Alexander
21.09.2018
08:06:10
Щас найду, я где-то тут svg редактировал для теха

Beholder
21.09.2018
08:06:16
operator get сделай и будет что-то типа document["person"].attributes["id"]

Google

Vladislav
21.09.2018
08:06:21

Andrew
21.09.2018
08:07:12
Тогда я поддерживаю советы касательно небольшого обвеса своими геттерами.

Alexander
21.09.2018
08:07:52
Во, нашел: https://bitbucket.org/mipt-npm/labnik_iii/src/dev/buildSrc/src/main/kotlin/elabnik/ProcessSvgTask.kt
По-моему котлиновские билдеры надстроены просто поверх DOM, так что можно их использовать as is, они все на расширениях

Andrew
21.09.2018
08:10:54
https://github.com/JetBrains/kotlin-native/pull/2096/files#diff-4ac32a78649ca5bdd8e0ba38b7006a1eR1
> ## v0.9.2 (Sep 2018)
> * Support release Kotlin 1.3.0
Похоже, нейтив синхронно с 1.3.0 не релизят. Что хорошо, наверное :)

Alexander
21.09.2018
08:12:19
Там и так ели переварить все можно. Я вот поставил прототипный serialization. Уже несколько часов сижу и пытаюсь понять что к чему

Alexandr
21.09.2018
08:13:04
объектная модель то в итоге котлиновская будет

Alexander
21.09.2018
08:14:03
Потому что дорого и долго. Все котлиновские билдеры сделаны поверх существующего DOM

Vladislav
21.09.2018
08:14:30

Alexandr
21.09.2018
08:15:09
ну можно же все описать
а xsd нет?

Alexander
21.09.2018
08:18:28
А зачем?

Google

Alexander
21.09.2018
08:18:41
перформанс точно упадет радикально
Просто за счет парсинга строк в объекты

Alexandr
21.09.2018
08:19:32
не думаю
по дому бегать тоже дорого

Alexander
21.09.2018
08:20:05
Это с чего это?

Alexandr
21.09.2018
08:20:24
да и если есть исходный xml, то распарсить в dom/объектную модель +- по скорости учитывая что второй вариант съест в разы меньше памяти
Это с чего это?
с чего должно быть обращение к оберткам, или не дай бог хождение через xpath быстрее обращения к полям?

Alexander
21.09.2018
08:21:25
Это если нужно все. А если, как это в большинтве случаев и есть нужен, скажем 1% от всего?

Alexandr
21.09.2018
08:22:01
естественно все от задачи зависит. человек спрашивает про апи, я - предлагаю

Alexander
21.09.2018
08:24:20
Я просто недавно на эти грабли напоролся. У меня одна и та же структура умеет превращаться и в XML и в JSON и XML работал в несколько раз быстрее. Не потому, что он такой хороший, в потому что он при чтении не парсил строки. Заменил JSON библиотеку на другую с ленивым парсером, все заработало отлично

Quantum Harmonizer
21.09.2018
08:25:08

Alexander
21.09.2018
08:26:06
Json отличает значение число от значения строки и значение число, которое передается (в виде строки разумеется) может автоматически превращаться в число. Так вот это превращение дорогое.
XML про числа ничего не знает, у него все строки, поэтому и не заморачивается

Quantum Harmonizer
21.09.2018
08:26:48
а, занятно

Alexander
21.09.2018
08:27:22
Если надо очень быстро прочитать несколько сотен файлов, то разница весьма существенная.

Quantum Harmonizer
21.09.2018
08:27:22
по моим наблюдениям-профилированиям, большинство тормозов — от выделения строк

Alexander
21.09.2018
08:27:42
Ну это не лечится

Руслан
21.09.2018
08:40:26
Мне нужна помощь маковода) Нужно запинить вот этот сайтик https://kotlin.link/ в Safari и скинуть скрин как выглядит иконка :) Заранее благодарю

Igor
21.09.2018
08:45:48

Руслан
21.09.2018
08:46:15
pin tab сделать, уже все, показали, работает как ожидается)

Google

Nanodesu
21.09.2018
09:23:28
Всем привет, можно ли объект представляющий класс (например klass:KClass) передать как generic-тип?
Мне нужно что-то типа такого(код нерабочий, просто для примера того, что я ожидаю):
fun getEntity(klass: KClass<SqliteEntity>): {
getEntityInner<klass::class>()
}

Alexander
21.09.2018
09:26:17
Конкретно так нельзя, но можно
fun <T:SqliteEntity> getEntity(klass: KClass<T>): {
getEntityInner<T>()
}
или реификация

Dmitriy
21.09.2018
18:39:39
Привет, из обобщенного типа никак не возможно же получить вложенный обобщенный тип? У меня функция reified T, где T это List<E> и мне нужен этот E

Quantum Harmonizer
21.09.2018
18:40:50

Boris
21.09.2018
18:43:10

Dmitriy
21.09.2018
18:44:54
Хм, спасибо за варианты, пойду думать

Boris
21.09.2018
18:46:17
Или уже оставь только А, если известно, что второй лист

Руслан
21.09.2018
18:48:34
https://habr.com/company/jugru/blog/424033/

Alexandr
21.09.2018
19:32:18
Иначе только явно передавать

Roman
21.09.2018
20:28:39

Dmitriy
21.09.2018
20:29:05

Roman
21.09.2018
20:30:12
Если хочется addAll, напиример, то так можно и писать: inline fun <reified T : Any> List<T>.addAll(....) и из неё можно будет этот add вызывать

Dmitriy
21.09.2018
20:30:52
Далее для типа T ищем серилизатор

Roman
21.09.2018
20:31:13
Я в том смысле что T у List<T> тоже можно реифицировать там, где надо
А если динамически, то только через type-tokens.

Dmitriy
21.09.2018
20:35:14

ISkylake
22.09.2018
04:45:29
Ребят, в чём разница между KClass#superclasses и KClass#allSuperclasses?

Alexander
22.09.2018
05:06:32
А что думает на эту тему госпожа документация?

Google

Di7aK
22.09.2018
05:41:32
думает для чего тогда эта беседа, или тут только умничают? будьте добрее

Alexander
22.09.2018
05:43:33
Я не злой, я просто не очень добрый. Проверить этот вопрос по документации быстрее, чем писать в чат. Если в документации что-то не понятно, тогда милости просим.

Di7aK
22.09.2018
05:44:26
тебе же не известно смотрел он ее или нет

Alexander
22.09.2018
05:45:53
На этот вопрос ответ в документации совершенно однозначный.

Admin
ERROR: S client not available

Di7aK
22.09.2018
05:47:50
я посмотрел доки, и разницы не увидел, разве что в порядке
и зачем туда включать интерфейсы если упоминаются только классы

Alexander
22.09.2018
05:51:34
У суперклассов есть свои суперклассы.
>All superclasses of this class, including indirect ones
Интерфейс - тоже класс

Di7aK
22.09.2018
05:53:41
вот так понятнее
а в доках что там что там
просто по разному описано

Andrey
22.09.2018
06:00:28
какая разница между interface`ом с реализацией и абстрактным классом в котором тоже есть реализация ?

Alexander
22.09.2018
06:04:00
Вопрос в порядке дискуссии или реальный? Если что, разница есть, но не принципиальная, а на уровне реализации

Andrey
22.09.2018
06:05:14

Maxim
22.09.2018
06:06:56

Alexander
22.09.2018
06:07:29
Да просто товарищ троллит, не хочется кормить. А про интерфейс с дефаултами разница в том, что у объект может реализовывать несколько интерфейсов и в каждом из них может быть реализация метода. В это случае объект наследник обязан указать, какую реализацию он использует. И реализация наследника по-умолчанию перекрывает реализацию интерфейса. Это сделано для решания diamond dependency problem.
Да, и еще интерфейс не может иметь состояние! Видимо поэтому и не сделали полноценное множественное наследование. С состояниями был бы совсем бардак.

Google

Andrey
22.09.2018
06:09:12

Alexander
22.09.2018
06:09:19
Я не про вас

ISkylake
22.09.2018
06:23:18
Хотя там (у superclasses и allSuperclasses) единственное различие — сохранение порядка, нашёл уже

Di7aK
22.09.2018
06:25:37
я тоже так подумал

Alexey
22.09.2018
06:26:02

Di7aK
22.09.2018
06:26:20
мастер запутанно описать

ISkylake
22.09.2018
06:26:23
А, не заметил

Alexey
22.09.2018
06:26:45
Надо за пелиной агрессии то видит что тебе пишут

Di7aK
22.09.2018
06:26:52
не проще написать что allSuperclasses возвращает суперклассы все суперклассов
а первое берет только суперклассы конкретного класса

Alexey
22.09.2018
06:27:47
Судя по всему в доке так и написано

Di7aK
22.09.2018
06:28:10
в доке, извиняюсь, написано для собак
люди такой язык не понимают

ISkylake
22.09.2018
06:28:30
Да я уже заметил сноску «including indirect ones»