@kotlin_lang

Страница 883 из 982
Alexander
21.09.2018
08:05:22
пока нет. Фокус на json

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
пока нет. Фокус на json
окей, буду java.xml юзать для чтения

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
Господа, с помощью чего в Kotline лучше всего работать с XML ?
а почему бы не написать маппинг на объекты и не разбирать dom/xml string сразу в объекты вагоном с тележкой джавовых либ?

объектная модель то в итоге котлиновская будет

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

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 библиотеку на другую с ленивым парсером, все заработало отлично

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 и скинуть скрин как выглядит иконка :) Заранее благодарю

Руслан
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

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
Иначе только явно передавать

Dmitriy
21.09.2018
20:29:05
А какой use-case? Можно пример сигнатуры, которую хочется написать?
inline fun <reified T : Any> add(name: String, crossinline function: (p: T) -> Any?)

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.

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
какая разница между interface`ом с реализацией и абстрактным классом в котором тоже есть реализация ?
Интерфейс можно прицепить к какому угодно классу и сколько угодно. А абстрактный класс необходимо наследовать и только один

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

Да, и еще интерфейс не может иметь состояние! Видимо поэтому и не сделали полноценное множественное наследование. С состояниями был бы совсем бардак.

Google
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
Хотя там (у superclasses и allSuperclasses) единственное различие — сохранение порядка, нашёл уже
Вам же написали выше, что первое берет только прямых предков, втрое всех

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»

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