@kotlin_lang

Страница 953 из 982
Alexander
16.10.2018
10:42:26
Но это наверное лечится прописыванием зависимостей в его конфигурацию

Andrew
16.10.2018
10:45:18
Я JMH не тыкал никогда, потому конкретно по нему советов не дам. Просто картина в общем знакомой показалась — джавовый плагин не подружился с котлиновской мультиплатформой :)

Alex
16.10.2018
10:47:56
Да, работает, но jmh не видит kotlin stdlib
Когда-то, на версии Котлина 1.1 jmh работал с ним у меня в беби-проекте

Я его уже увы, потерял

Google
Alexander
16.10.2018
10:57:47
До мультиплатформы и у меня все работало

Вот так работает: dependencies{ jmh 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' } правда идея подсвечивает много чего красным

Andrew
16.10.2018
11:22:47
Вот так работает: dependencies{ jmh 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' } правда идея подсвечивает много чего красным
Надо сходить в Project structure и исправить пути к jar-никам некоторых либ. Я без руля, почему это происходит и есть ли на это баг.

Alexander
16.10.2018
11:24:02
Какой-то косяк с идеей. Не видит зависимостей. Если руками прописать, то все нормально

Andrew
16.10.2018
11:24:35
Причём я иногда хожу и забираю Kotlin-плагин для 1.3.20 для идеи с тимсити, проблема до сих пор актуальна в свежих билдах.

Vladimir
16.10.2018
11:24:50
Надо сходить в Project structure и исправить пути к jar-никам некоторых либ. Я без руля, почему это происходит и есть ли на это баг.
В Gradle-проекте шаг влево или вправо и IDEA создаёт кривую модель проекта. Или создаёт нормальную, но работает всё равно не так.

Alexander
16.10.2018
11:26:02
Ну работает и хорошо. Мне эти тесты раз в пятилетку нужны. Совсем без них низзя.

Semyon
16.10.2018
13:23:33
Добрый день! listOf(1,2,3) .groupingBy { it } .aggregate{_, accumulator, _, _ -> 0} Type inference failed Почему?

Alexander
16.10.2018
13:37:21
Because.

Не понятно, какого именно типа не хватает

Sergey
16.10.2018
13:38:10
Добрый день! listOf(1,2,3) .groupingBy { it } .aggregate{_, accumulator, _, _ -> 0} Type inference failed Почему?
потому что ему надо знать че ты хочешь на выходе получить

Alexander
16.10.2018
13:38:35
Ну я посмотрел по типам, вроде должно быть очевидно

Google
Sergey
16.10.2018
13:39:05
не

Semyon
16.10.2018
13:39:18
потому что ему надо знать че ты хочешь на выходе получить
зачем? я ему явно даю результат как Int, почему не вывести?

Sergey
16.10.2018
13:39:30
listOf(1,2,3) .groupingBy { it } .aggregate{_, accumulator: Int?, _, _ -> 0}

Alexander
16.10.2018
13:39:52
Ну да

Но теоретически мог бы и вывести. Другое дело, что это не нужно

Sergey
16.10.2018
13:40:22
в 1.3 может будет выводить такое, но не факт

Alexander
16.10.2018
13:41:11
в play.kotlin уже 1.3-RC есть, можно пробовать

Sergey
16.10.2018
13:42:49
там нужно флаг включить для нового type inference

не уверен что он включен в сандбоксе

Alexander
16.10.2018
13:44:05
Все эти type inference - это от лукавого. Часто удобно, но если не работает - прописываешь тип и не мучаешься

Alexander
16.10.2018
13:45:17
Он не всегда полезен. IDE конечно подсвечивает типы, но без нее читаемость часто падает

Quantum Harmonizer
16.10.2018
13:46:22
Он не всегда полезен. IDE конечно подсвечивает типы, но без нее читаемость часто падает
когда-то у меня отвалился inference в выражении list1 + list2 + element, было довольно больно писать .plus<T>(

Sergey
16.10.2018
13:46:31
можно проверку включить чтобы для публичных методов просило явно указывать тип

Alexander
16.10.2018
13:47:18
когда-то у меня отвалился inference в выражении list1 + list2 + element, было довольно больно писать .plus<T>(
Я же не говорю, что вовсе понедельники отменить. Просто сладкого в меру

Mikhail
16.10.2018
14:22:13
Как человек, который злоупотребляет method reference и чейнингом через .let очень ждунового type inference в стейбле

иногда прям больно, был такой случай: fun <T> foo(t: T) fun <T> foo(list: List<T>) вместо listofT.let(::foo) пришлось явно указывать listofT.let { foo(it) }

забавно было

жмякаешь quick fix convert lambda to reference и у тебя типы не резолвятся

Sergey
16.10.2018
14:26:04
у меня suspend функции все отваливаются по референсу

Google
Mikhail
16.10.2018
14:28:46
А почему это не работает?
а нинаю, даже при наведении пустое сообщение ошибки

dimiii
16.10.2018
14:28:47
жмякаешь quick fix convert lambda to reference и у тебя типы не резолвятся
Сейчас бы пользоваться флагманским продуктом

Mikhail
16.10.2018
14:29:43
мало того что этот дурацкий :: приходится писать, так еще и не работает иногда

Andrey
16.10.2018
14:52:12
Он не всегда полезен. IDE конечно подсвечивает типы, но без нее читаемость часто падает
Ну чтоб читаемость не сильно падала, есть хорошее соглашение - прописывать типы на всём, что является внешним API кода, который пишешь.

Gedion
16.10.2018
14:53:41
Hey guys Can you send me resources I would need to learn Kotlin I am a beginner I only have experience with python

Gedion
16.10.2018
14:55:23
Hi
Hey Thanks, but do you have videos Links about multi platform programming

Quantum Harmonizer
16.10.2018
14:55:27
да и чтобы совместимость не сломать ненароком

Quantum Harmonizer
16.10.2018
14:55:38
Max
16.10.2018
14:56:06
Hey guys Can you send me resources I would need to learn Kotlin I am a beginner I only have experience with python
You can use official documentation. Also you can use this resource, it contain some links to videocourses https://developer.android.com/kotlin/resources

Andrey
16.10.2018
14:57:10
Полезное замечание, я вот и не знал
И это в Kotlin ещё inference слабый, так как система типов не разрешима в общем случае. Во всяких языках, основанных на Hindley–Milner type system, вообще очень редко требуется типы прописывать. Там это соглашение сильно форсят.

Max
16.10.2018
15:00:01
Okay thanks ??
Usually udacity courses by google is good. I wasn't see this course, but maybe it will be good for you. Good luck :) https://www.udacity.com/course/kotlin-bootcamp-for-programmers--ud9011

Google
Max
16.10.2018
15:06:34
Check out this channel https://t.me/TheDailyKotlin
Это не мне наверное? )

dimiii
16.10.2018
15:07:30
Gedion
16.10.2018
15:15:17
Aleksandr Petrov
16.10.2018
16:50:22
Добрый день, я делаю тестовый проект для изучения Kotlin'a. Мог бы кто-то мне помочь и отревьюить код?

Aleksandr
16.10.2018
16:52:59
а в чем смысл?

Aleksandr Petrov
16.10.2018
16:56:40
а в чем смысл?
Для меня это новый язык, хочу изучить best practice и понять, что может быть делал неправильно

Глеб
16.10.2018
16:57:22
Для меня это новый язык, хочу изучить best practice и понять, что может быть делал неправильно
Ну, смотри. Если где-то использовал !! - значит делал неправильно.

Admin
ERROR: S client not available

Aleksandr Petrov
16.10.2018
17:00:51
Ну, смотри. Если где-то использовал !! - значит делал неправильно.
Хм, я использовал этот оператор для определения значения параметра во входящем GET-запросе. Как это можно было бы обойти?

dimiii
16.10.2018
17:02:52
Глеб
16.10.2018
17:02:53
!! - оно-же даже выглядит как костыли. Но если ты реально обошелся всего парой использований в первом проекте, то у тебя талант!

или ?:
Так и ?. в туже кучу, но это всё сокращение для if(a!=null)

Aleksandr Petrov
16.10.2018
17:03:34
Проверить на null :) Как-же ещё.
То есть лучше в куске кода ниже лучше заменить на `if`-ветку: val filterTypeValue = call.request.queryParameters.get("filter")!! var filterType: FilterType try { filterType = FilterType.valueOf(filterTypeValue.toUpperCase()) } catch (error: IllegalArgumentException) { call.respond(HttpStatusCode.BadRequest, ErrorResult("Unknown filter type")) return@get }

Глеб
16.10.2018
17:04:19
да, ибо если в query не будет filter, то сие упадёт с NPE

Aleksandr Petrov
16.10.2018
17:04:49
да, ибо если в query не будет filter, то сие упадёт с NPE
Это ловится в catch-блоке в данном примере

Глеб
16.10.2018
17:05:12
нет

свалится раньше

Google
Глеб
16.10.2018
17:05:30
кажется...

должно, по крайней мере

Aleksandr Petrov
16.10.2018
17:06:18
Тут есть !!, поэтому не валится (проверял), а вот резолвинг в enum-константу и может.

Глеб
16.10.2018
17:06:55
Значит там пустое значение, а не null. Блин, надо прям проверить

dimiii
16.10.2018
17:07:15
То есть лучше в куске кода ниже лучше заменить на `if`-ветку: val filterTypeValue = call.request.queryParameters.get("filter")!! var filterType: FilterType try { filterType = FilterType.valueOf(filterTypeValue.toUpperCase()) } catch (error: IllegalArgumentException) { call.respond(HttpStatusCode.BadRequest, ErrorResult("Unknown filter type")) return@get }
что тут smells: var, return@get, не декларативная обработка исключений - обычно фреймворки позволяют навешивать ответы на исключения, скорее всего и декларативной валидации входных данных нет

Глеб
16.10.2018
17:08:30


валится с NPE на присваивании

Aleksandr Petrov
16.10.2018
17:08:56
Спасибо, учту

Igor
16.10.2018
17:09:07
Добрый день, я делаю тестовый проект для изучения Kotlin'a. Мог бы кто-то мне помочь и отревьюить код?
1) Включи новый code-style для Kotlin 2) Поставь эти галочки: - https://i.gyazo.com/607ad1debd8282c4eccbb7dda7ee0a79.png

https://i.gyazo.com/f2a970f4baecf3605512ff7b7a1f7795.png

Глеб
16.10.2018
17:09:37
Спасибо, учту
а ещё можешь залить куда-нибудь на гитхаб поделие и кинуть ссылку

Думаю, найдутся любители жарких дебатов

Larymar
16.10.2018
18:23:37
подскажите как добавить элемент в лист



у меня не резолвит метод а java листы использовать не хочу, хотя могу

Igor
16.10.2018
18:24:51
val dict: MuttableList<Node>...

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