@kotlin_lang

Страница 533 из 982
Igor
06.02.2018
20:17:32
async deferred возвращает, а launch – джобу?
А почему одно нельзя, заменить другим? (принциально)

Andrew
06.02.2018
20:18:04
launch -- fire and forget, результат не ждёшь, исключение валит всё сразу как случается. ожидается через .join() async отдаст результат или свалит .await(), обязательный для вызова.

Kirill
06.02.2018
20:18:43
Блин 60LoC и 90 звезд, как???
вспомни про leftpad :)

Google
Andrew
06.02.2018
20:20:49
точно могу сказать, что о произошедшем исключении ты никогда не узнаешь, какие ещё последствия -- не знаю.

Quantum Harmonizer
06.02.2018
20:40:34
Товарищи, нет ли тут в build.gradle какого-нибудь тотального косяка? Если импортировать проект, тесты в модуле art2 работают? https://github.com/Miha-x64/mixed-android-kotlin-project Суть в том, что когда присутствует classpath 'com.android.tools.build:gradle:3.0.1', в нормальных модулях всё летит к чертям (ставится неправильный output, классы компилятся в один каталог, идея ожидает увидеть их в другом).

Igor
07.02.2018
07:28:17
sealed interface в котлин нету?

Kirill
07.02.2018
07:28:42
Нету

По определению быть не может

Там весь sealed через package local конструктор реализуется

А у интерфейсов конструкторов нет

Igor
07.02.2018
07:31:13
окей

Kirill
07.02.2018
07:35:24
Всё как в скалке в этом плане

Жабра
07.02.2018
07:50:12
sealed interface в котлин нету?
Декомпилируйте sealed класс, и там будет интерфейс.

Igor
07.02.2018
08:26:00
Декомпилируйте sealed класс, и там будет интерфейс.
Хм, а я вижу там “абстрактный класс”

Жабра
07.02.2018
08:34:45
Хм, а я вижу там “абстрактный класс”
Хм, странно, мне казалось там интерфейс... Ладно, моя вина

Google
Igor
07.02.2018
13:42:25
А в anko-sqlite у кого-то получалось впихунть TIMESTAMP тип?

Dinar
07.02.2018
14:18:17
Что значит тип TIMESTAMP?

Vladislav
07.02.2018
15:20:06
https://billing.timepad.ru/event/662151/

Bogdan
07.02.2018
15:24:51
Пфф, ну конечно же нет.
Про какие параметры речь?

Quantum Harmonizer
07.02.2018
15:25:09
Andrew
07.02.2018
17:30:13
В котлине нету какого-нибудь slice / view, который бы позволил, имея ByteArray, получить его кусок без дополнительных аллокаций?

Похоже, нету. И итератора из коробки нету, который позволил бы только по части массива пробежаться. Не то, чтобы было сложно написать свой итератор / передавать с массивом в довесок индекс, конечно :)

Bogdan
07.02.2018
17:55:38
конструктора
а вот что михалыч, да они и не нужны, lateinit на нужные проперти

ччеловек фигней занимается

Quantum Harmonizer
07.02.2018
17:56:18
а вот что михалыч, да они и не нужны, lateinit на нужные проперти
lateinit — зло и костыли, как и синглтоны с параметрами/зависимостями/состоянием

Bogdan
07.02.2018
17:59:02
lateinit — зло и костыли, как и синглтоны с параметрами/зависимостями/состоянием
таки да, но для работы с джавой нужен, а что насчет делегатов? Просто интеремно мнения

Osip
07.02.2018
17:59:03
lateinit — зло и костыли, как и синглтоны с параметрами/зависимостями/состоянием
А как инжектить поля без lateinit? Чтобы при этом не делать nullable

Osip
07.02.2018
17:59:57
Инжектить только в конструктор.
К сожалению, не всегда возможно

Bogdan
07.02.2018
18:00:22
Что значит «для работы с джавой»?
фраймворки, тот же спринг, с кодовой базой джава

Quantum Harmonizer
07.02.2018
18:00:42
при чём здесь, на чём кодовая база?

Google
Bogdan
07.02.2018
18:01:47
при чём здесь, на чём кодовая база?
библиоте и всякая всячина

Quantum Harmonizer
07.02.2018
18:01:49
а 4
умеет, я проверял

библиоте и всякая всячина
какие библиотеки требуют использования lateinit?

Bogdan
07.02.2018
18:02:09
Kira
07.02.2018
18:02:51
Идея сто лет как в четвёртом подсвечивает что Autowired нужно на конструкторе и в других местах это плохо

Bogdan
07.02.2018
18:03:19
какие библиотеки требуют использования lateinit?
ну спринг оказалось нет, ще JavaFX. Но чесно говоря я не знал про @Autowired constructor

Osip
07.02.2018
18:03:50
какие библиотеки требуют использования lateinit?
А при инжекте, например, в Activity в Андрюшке это разве не необходмое зло?

Bogdan
07.02.2018
18:04:51
Что JavaFX?
FXML, инжекты в контролер

Quantum Harmonizer
07.02.2018
18:05:30
FXML, инжекты в контролер
А, я tornadoFX пользуюсь.

Kira
07.02.2018
18:06:09
FXML, инжекты в контролер
Ага, я про них, биндинги. Ну увы, не хочешь ручками их делать - то lateinit

Bogdan
07.02.2018
18:06:46
А, я tornadoFX пользуюсь.
ну я тоже уже, мне только возникли вопросы с парсингом JSON (стандартная либа не очень)

Kira
07.02.2018
18:07:25
Отсутствие вменяемого и поддерживаемого инструмента для рисования похоронило для меня Fx(

Kira
07.02.2018
18:09:52
Ручками я написался.. свои компоненты делать - то еще зло.. На ангуляре куда проще тоже самое писать

Вот за что спасибо - это observable collections которые вместе идут, они хоть как-то жизнь облегчали

Google
Kira
07.02.2018
18:19:06
Странные вопросы, открыл ide, посмотрел какие методы доступны.. поискал по названию

kotlin.collections - то по чему я плачу во всяких тайпскриптах

Quantum Harmonizer
07.02.2018
18:28:27
Ведро же, ну.
Это не библиотека, это рассадник антипеттернов. :)

Andrew
07.02.2018
18:30:07
Я-то не спорю, но необходимость работать с ним от понимания этого не отпадает.

Kira
07.02.2018
18:31:25
Задумался.. даггер что ли?

Quantum Harmonizer
07.02.2018
18:31:31
Я-то не спорю, но необходимость работать с ним от понимания этого не отпадает.
Я предпочёл один раз написать костыли, которые позволяют писать без этого.

Andrew
07.02.2018
18:31:32
bytes.slice(2..5)
Спасибо, документацией к стандартной библиотеке я пользоваться умею. .slice копирует данные в новый ByteArray, а я спрашивал о возможности обойтись без копирования -- чёт вроде Go-шных слайсов, std::string_view из новых плюсов и т. п.

Quantum Harmonizer
07.02.2018
18:32:01
Задумался.. даггер что ли?
И как он поможет избавиться от lateinit во фрагментах, например?

Kira
07.02.2018
18:32:39
И как он поможет избавиться от lateinit во фрагментах, например?
Вспоминаю где вообще там lateinit бывает, сам ведроид стараюсь не трогать

Andrew
07.02.2018
18:33:00
Даггер, не даггер, без разницы, как готовить DI, сама необходимость инжектить в поля заложена в само ведро, так что какими решениями ни обмазывайся, грязь останется грязью.

Бывает в любом классе, жизненным циклом которого дев не управляет. Activity, Fragment, View, Service, Loader, ContentProvider, тысячи их.

Andrew
07.02.2018
18:41:05
bytes.asList() Как только в Котлин завезут ByteArrayList, это сможет обойтись без копирования :)

Dinar
07.02.2018
18:42:02
Можно рассмотреть вариант с Okio

Quantum Harmonizer
07.02.2018
18:42:06
com.sun.org.apache.xerces.internal.impl.dv.util.ByteListImpl ?

Kira
07.02.2018
18:42:41
Andrew
07.02.2018
18:43:50
Можно рассмотреть вариант с Okio
"Пытался обойтись NIO", -- начал писать я и понял, что у ByteBuffer есть .slice, который я ищу. Спасибо :)

(Хотя это и не решает вопрос с самим котлином, ибо JVM-specific. Не уверен, конечно, насколько это необходимая в стандартной библиотеке штука...)

Google
Quantum Harmonizer
07.02.2018
18:46:35
Чем ByteArray.asList(): List<Byte> плох-то? Хочу понять
Тем, что там копирование и боксинг.

Kira
07.02.2018
18:47:25
Тем, что там копирование и боксинг.
Боксинг - да, а копирование где? Может после работы не соображаю, но в коде не вижу

Quantum Harmonizer
07.02.2018
18:48:35


Kira
07.02.2018
18:49:17
А зачем ты мутабельный делаешь?

Quantum Harmonizer
07.02.2018
18:50:20


Kira
07.02.2018
18:52:26
Ээээ.. разве первый два не иммутабельные?

Quantum Harmonizer
07.02.2018
18:53:50
Ээээ.. разве первый два не иммутабельные?
emptyList и singletonList иммутабельные, да

Kira
07.02.2018
18:54:44
emptyList и singletonList иммутабельные, да
тогда возвращать мутабельный лист наравне с ними выглядит странно по мне

Quantum Harmonizer
07.02.2018
18:55:12
тогда возвращать мутабельный лист наравне с ними выглядит странно по мне
У котлина в стдлибе нет персистентных коллекций. Возвращает то, что есть на JVM :)

Можно было бы обернуть в unmodifiableList, но оверхед

Kira
07.02.2018
18:57:27
@Harmonizr Аааа, не посмотрел что это toList из стандартной либы)) я про asList всё говорю

Quantum Harmonizer
07.02.2018
18:58:39
Я долбоневнимателен, asList() отлично сделан

Andrew
07.02.2018
18:59:19
А разве мутабельность как-то влияет на необходимость копировать при боксинге? Сорцы не дочитал, отвлёкся. Пойду дочитаю.

Quantum Harmonizer
07.02.2018
18:59:45
боксинг — только при get/set, но весь диапазон java.lang.Byte закеширован

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