@kotlin_lang

Страница 946 из 982
Bogdan
13.10.2018
07:33:47
секунду
https://discuss.kotlinlang.org/t/how-does-synchronized-work/1528

Алексей
13.10.2018
07:34:20
import kotlin.math.sin fun main(args: Array<String>) { sin(3.14) } // ------- Error:(387, 5) Kotlin: Overload resolution ambiguity: @SinceKotlin @InlineOnly public inline fun sin(x: Double): Double defined in kotlin.math @SinceKotlin @InlineOnly public inline fun sin(x: Double): Double defined in kotlin.math

Dumitru
13.10.2018
07:35:29
как в Ktor сделать "prevent_xsrf": false

Google
Алексей
13.10.2018
07:35:32
ну ё-моё

чёт я тупанул, я так понимаю, у меня два sin откуда-то?

Quantum Harmonizer
13.10.2018
07:37:08
Не только, по нему еще можно генерить DTO например
Эти DTO потом небось подходят только для JSON? Мои DTO ничего не знают о формате и могут быть сериализованы во что угодно (в базу данных, гы).

Bogdan
13.10.2018
07:41:32


Алексей
13.10.2018
07:41:56
Спасибо

Bogdan
13.10.2018
07:43:31
Спасибо
может 2-std либы подключил

Алексей
13.10.2018
07:44:14
удалял вроде, странно

а как мавен разные версии зависимостей разрешает?

там просто вложенные есть

Андрей
13.10.2018
10:13:33
а как мавен разные версии зависимостей разрешает?
Вроде "как повезет", что попадет первое из депенды то и заюзает.

Андрей
13.10.2018
10:16:26
Ваще у мавена в целом жесть, когда еще разные либы разные версии юзают. У градла вроде пикается старшая версия, но при этом дается возможность перехватить момент подключения депенды и указать какую именно подсунуть.

Google
Андрей
13.10.2018
11:33:46
https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Transitive_Dependencies
Странно, смотрел где-то, что не всегда удается сказать "юзай явно это ...", там в класспаф разве еще не влияет порядок, т.е. когда класс грузит?

dimiii
13.10.2018
11:34:57
Странно, смотрел где-то, что не всегда удается сказать "юзай явно это ...", там в класспаф разве еще не влияет порядок, т.е. когда класс грузит?
Интересная мысль, хочется верить, что формирование classpath детерменировано правилами разрешения зависимостей )

Андрей
13.10.2018
11:37:02
?

Boris
13.10.2018
12:01:40
а было что-то на котлин-конф реально интересного? если у меня есть время только на одно видео, чего бы посоветовали?

Евгений
13.10.2018
12:02:25
Подскажите пожалуйста.. Мне нужно преобразовать строку в константу энума. Причем конкретный класс энума не известен. Есть только enumClass: Class<*> делаю: java.lang.Enum.valueOf(enumClass, name)

выдает: inferred type CapturedTypeConstructor(*) is not a subtype of Enum<out Any!>!

как будто бы в котлине ужесточили проверки генериков

есть способ обойти это?

Quantum Harmonizer
13.10.2018
12:03:56
выдает: inferred type CapturedTypeConstructor(*) is not a subtype of Enum<out Any!>!
можно @Suppress("UPPER_BOUND_VIOLATED") (по сравнению с джавой — да, ужесточили) (не стоит забывать, что Enum.valueOf — это рефлексия)

Евгений
13.10.2018
12:06:07
что-то все равно ошибка компиляции

ну да. у меня тут рефлективный код)

Alexander
13.10.2018
12:09:47
а было что-то на котлин-конф реально интересного? если у меня есть время только на одно видео, чего бы посоветовали?
В общем там было не сверх весело, если знать Котлин на нормальном уровне. Я бы порекомендовал просто посмотреть доклады уровня Advanced, которые тебя по названию интересуют + паззлеры. Рекомендовали корутины от Елизарова (сам не смотрел), в целом неплохо было про annotation processing, про корутины против Rx. Про вывод типов от Исаковой, если не сильно углублялся в фичи 1.3.

Евгений
13.10.2018
12:12:11
получилось: @Suppress("UPPER_BOUND_VIOLATED") return java.lang.Enum.valueOf<Enum<*>>(enumClass as Class<Enum<*>>, name)

Bogdan
13.10.2018
12:15:09
а было что-то на котлин-конф реально интересного? если у меня есть время только на одно видео, чего бы посоветовали?
склеить все видео и посмотреть "одно" видео ?, про корунти и нейтив я бы посмотрел (если есть что-то)

Google
Igor
13.10.2018
15:15:59
Парни, как включить новый тайп-инференс? Вроде добавил kotlin { experimental { newInference "enable" } } Но gradle ругается Could not find method newInference() for arguments [enable] on object of type org.jetbrains.kotlin.gradle.dsl.ExperimentalExtension.

Котлин версии 1.3.0-rc-146

Dmitry
13.10.2018
15:31:26
Кажется, расширение для DSL не попало в rc-146. Можно через ключик -XXLanguage:+NewInference компилятору. В Gradle это вроде бы как-то так делается kotlinOptions { freeCompilerArgs += ["-XXLanguage:+NewInference"] }

Dmitry
13.10.2018
16:01:52
Я имел ввиду протаскивание ключика для new inference в DSL :) возможно "расширение" было не самым удачным термином тут)

Roman
13.10.2018
16:03:36
https://www.youtube.com/watch?v=MyljSWm0Y_k&t=0s&index=25&list=PLQ176FUIyIUbVvFMqDc2jhxS-t562uytr

Vladimir
13.10.2018
17:12:30
а как мавен разные версии зависимостей разрешает?
Выбирает ту, которая объявлена ближе к pom проекта

Konstantin
13.10.2018
17:19:45


Kirill
13.10.2018
17:27:24
это из-за РКН

Boris
13.10.2018
17:32:10
Вроде давно всё разблокировали, нет?

Alexander
13.10.2018
17:32:35
Периодически что-то блокают

Boris
13.10.2018
17:34:03
Плохо жить в России, старайтесь этого избегать

Konstantin
13.10.2018
17:37:55
о, а это ж все с гитхаба, отличненько

Alexander
13.10.2018
18:13:23
Делаем прибыль VPN сервисам.

Алексей
13.10.2018
18:14:56
Всем добрый вечер! У меня возникла проблема с компиляцией запросов в dao room с использованием rxkotlin Есть такой запрос, который возвращает список Int //Запрос возвращает список id-шников дочерних рубрик @Query("SELECT id FROM rubrics WHERE parent_rubric_id = :parentId") fun selectChildRubricsByIdParentId(parentId: Int): Observable<List<Int>> Компилятор выдает такую ошибку мне error: Not sure how to convert a Cursor to this method's return type для работы с либами у меня есть такие dependency dependencies { def room_version = "1.1.1" implementation "android.arch.persistence.room:runtime:$room_version" kapt "android.arch.persistence.room:compiler:$room_version" // use kapt for Kotlin }implementation 'io.reactivex.rxjava2:rxkotlin:2.2.0' implementation "io.reactivex.rxjava2:rxandroid:2.0.1" implementation 'android.arch.persistence.room:rxjava2:1.1.1'

Alexandr
13.10.2018
18:17:44
Эти DTO потом небось подходят только для JSON? Мои DTO ничего не знают о формате и могут быть сериализованы во что угодно (в базу данных, гы).
Что за бред... Естественно нет, генерятся обычные классы, поля, акцессоры... Сериализуй чем угодно

а как мавен разные версии зависимостей разрешает?
Подключает все версии, а там что первое в класпасе окажется

Google
Quantum Harmonizer
13.10.2018
19:33:44
Vladimir
14.10.2018
03:41:48
Alexandr
14.10.2018
03:58:22
Ну он не настолько тупой всё-таки
Сколько использовал мавен - всегда так, далее с последним. Если не использовать спрнгрвый бом - начинается атас

Alexandr
14.10.2018
04:12:32
Прям такой, что несколько версий в classpath?
Да, а там рандом, что первее загрузится класслоадером

Vladimir
14.10.2018
04:18:09
Да, а там рандом, что первее загрузится класслоадером
Странно, для одного groupId:artifactId он не должен такое допускать. Другое дело, что разрешение конфликтов своеобразное и прибитое гвоздями

Admin
ERROR: S client not available

Mikhail
14.10.2018
19:53:38
я тут недавно подумал о таком предложении: что если сделать перегрузки для arrayOf(primitive_type), которые бы возвращали int[]? Тогда по дефолту всегда будет версия без боксинга. А если боксинг нужен, то всегда можно указать явно arrayOf<Integer>(), например

Boris
14.10.2018
20:03:17
Там ведь разные array возвращаются, только путать будет, сейчас специально отдельные функции сделаны

Mikhail
14.10.2018
20:06:22
ну да, они никак не связаны

да и нет смысла бы связывать, да

они же инвариантны

тогда лучше написать правило для линта

https://github.com/arturbosch/detekt/issues/1245

Boris
14.10.2018
22:00:49
послушал про канкаренси в к/н. сурово. очень всё путано. ну и рантайм решения выглядят как затычки, чтобы не трогать язык..

Alexander
14.10.2018
22:08:09
а можно ссылочку ?
Полагаю, что это: https://www.youtube.com/watch?v=nw6YTfEyfO0

Bogdan
14.10.2018
22:08:25
спасибо

Boris
14.10.2018
22:14:42
да, оно

Andrew
14.10.2018
23:31:34
послушал про канкаренси в к/н. сурово. очень всё путано. ну и рантайм решения выглядят как затычки, чтобы не трогать язык..
Дык Николай явно сказал, что наллабилити тоже начиналось с рантайма. Плюс и он, и Андрей в кейноуте намекнули, что модель многопоточности и в остальных бекендах может поменяться в будущем.

Google
Boris
14.10.2018
23:43:51
а я слышал, что затэгировали 1.0 ?

Alexandr
15.10.2018
05:18:48


прикольно, вот спринговая работа с транзакциями не дружит с многопоточностью, а вот с корутинами подружат)

Mikhail
15.10.2018
06:22:50
прикольно, вот спринговая работа с транзакциями не дружит с многопоточностью, а вот с корутинами подружат)
Корутины != Многопоточность. Они же могут на одном треде исполняться. И им не нужен shared state для общения, все можно делать через каналы

Alexandr
15.10.2018
06:23:36
тут смысл в том что транзакцию в отличии от тредов можно хранить в corutine context и знать когда её закрыть. с тредами нужна отдельная нетривиальная логика шаринга транзакции

Nikolay
15.10.2018
06:25:10
А что такое многопоточность для вас тогда?

Nikolay
15.10.2018
06:26:49
Ну просто если синка между потоками нет, то зачем вообще рассуждать про многопоточность

Артем
15.10.2018
06:50:21
Всем доброе утро. Столкнулся с таким вопросом, беглый поиск в google пока не дал результатов)) Решил тут спросить вдруг быстрее скажут )) Или просто пошлют куда надо :) Есть Object , в нем переменная моего класса хранится довольно тяжелая(в вопросе памяти) после иннициализации и всякая обвеска для работы с ней. Переменная довольно долго инициализируется и создавать ее каждый раз внутри методов работы с ней, а хранить только параметры для создания не вариант. Переменная создается внутри этого Object.. Вида private lateinit var Name : TypeMyVariable И вопрос.. Как мне удалить ссылки на нее после того как я закончил работу с ней.. Мне придется сделать ее TypeMyVariable? для этого ? И завести какой нибудь метод вида Destroy где присваивать ей null ?

Anton
15.10.2018
06:54:59
можешь так, или можешь через скоупы решить

Konstantine
15.10.2018
07:01:55
Есть какая-нибудь информация - будут ли контракты поддерживаться не в top level функциях?

Alexey
15.10.2018
07:03:04
прикольно, вот спринговая работа с транзакциями не дружит с многопоточностью, а вот с корутинами подружат)
Кек, я уверен что придётся прыгать с бубном оч много, потому что неявное прокидывание тред локалей - это та еще боль

Alexandr
15.10.2018
07:03:59
все чисто и безопасно

Alexey
15.10.2018
07:04:19
так зачем тредлокалы то? реализация через coroutine scope
А как по вашему транзакции в спринге работают?

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