@kotlin_lang

Страница 859 из 982
Dmitriy
11.09.2018
11:08:05
Alexandr
11.09.2018
11:19:08
не думаю. с чего бы

попробуй тыкнуть на инспекцию и просто её вырубить

Ivan
11.09.2018
12:07:23
@relizarov Роман, а Вы же ещё ведёте курс по многопоточке? Вроде начался новый учебный год. У вас нет возможности попросить кого-нибудь поставить камеру и записать ваши лекции?

Google
Ivan
11.09.2018
12:09:21
Да, начался. Нет, писать не планируется.
Эх... а это не возможно по моральным причинам или техническим?

Vadim
11.09.2018
12:13:23
Пытаюсь создать переменную val dialog = FingerprintDialog.Builder() так мне пишет мол Builder - unresolved reference

Di7aK
11.09.2018
12:33:28
куда по андроиду обратиться можно?

Max
11.09.2018
12:33:49
https://t.me/android_ru

Oleg
11.09.2018
12:35:07
Господа, как думаете 1.3 релизнется к kotlinconf 3 октября? (есть у кого инсайдики ?)
учитывая, что JB массова начал на прошлой где-то неделе переводить свои проекты (ktor, kotlinx.serialization и может и другие) на 1.3-М2 версию котлина, то всё очень может быть

но есть одно НО, в 1.3-М2 изменили подход к мультиплатформенным проектам, при чём так сильно (в лучшую сторону), а это как-то не сильно говорит о том, что они готовы релизить в ближайший месяц

Sergey
11.09.2018
12:41:40
обновлю плагин котлина на 1.3-M2, вдруг корутины дебажить нормально можно...

Oleg
11.09.2018
12:43:45
да, по старому тоже работает, но всё же новый способ как-то поприятнее что ли

Alexander
11.09.2018
12:44:48
Я поспрашивал на форуме, они говорят, что это просто новый вариант градл-плагина. С точки зрения компилятора ничего нового пока.

Alexander
11.09.2018
12:46:53
Я посмотрел сэмплы. Пока выглядит довольно громоздко

Google
Oleg
11.09.2018
12:47:05
Я поспрашивал на форуме, они говорят, что это просто новый вариант градл-плагина. С точки зрения компилятора ничего нового пока.
по сути да, но оно облегчает изменение кода; когда все actual объявления хранятся в одном моделе это удобнее, + можно теперь очень удобно шарить код для Андроид и jvm, в тоже время оставляя некоторые реализации уникальными для каждой платформы

Alexander
11.09.2018
12:47:51
А в чем проблема сделать несколько модулей?

Oleg
11.09.2018
12:48:09
только удобством по сути отличается

Alexander
11.09.2018
12:49:16
Ну идея позволяет довольно удобно работать с многомодульными проектами. Как раз наоборот, в одном модуле получается сборка слишком сложная

Oleg
11.09.2018
12:49:27
они же внутри как раз и разбивает всё на много модулей, но для тебя это просто sourceSet-ы, по которым перемещаться гораздо удобнее, чем по модулям, имхо

Alexander
11.09.2018
12:49:59
Я мысль понял, но пока мне все-таки кажется, что изоляция модулей - это хорошо.

Я обычно хочу. чтобы платформная часть была очень хорошо инкапсулирована.

Oleg
11.09.2018
12:51:36
Думаю пока это дело вкуса, может потом будет что-то по интереснее

Andrew
11.09.2018
12:53:56
Новый плагин интересный. Конфиг, конечно, чуть более громоздкий, но всё равно приятнее пачки отдельных модулей. Правда с андроидным плагином совмещается по очевидным причинам страшненько.

Ну и, опять же по очевидным причинам, есть некоторый лаг по фичам относительно плагина K/N.

Oleg
11.09.2018
12:57:57
А вот кстати на счёт релиза K/N, не говорил никто, будет он завязан на релиз котлина самого (1.3 или 1.4), или будет идти независимо со своими версиями?

Andrew
11.09.2018
12:59:44
Официально не объявляли, но команда K/N давно говорит, что по полноте фичей он уже юзабельный. Плюс там, насколько я понимаю, полным ходом идёт распил монолитной репы на модули для удобства интеграции во взрослый котлин. Будет очень обидно, если не успеется к 1.3.

Плюс на форуме недавно кто-то обещал новости по поддержке нэйтива в идее :)

Alexander
11.09.2018
13:03:49
Мост мне, мост!

Andrew
11.09.2018
13:06:36
Вот кстати на тему моста я пока изменений интересных не видел, что обидно. Но наверняка же дело исключительно в свободных руках. Хочется верить, что к 1.3 команда успеет уйти на общий бекенд для всех компиляторов, а дальше и мост должен стать проще, и апи для компилятора стабилизировать. Но пожуём -- увидим.

Alexander
11.09.2018
13:07:38
Ходили слухи, что он (то есть мост) есть, но не документированный. А про общий IR, это я как понял к 1.3 не успевают.

Andrew
11.09.2018
13:09:22
Ходили слухи, что он (то есть мост) есть, но не документированный. А про общий IR, это я как понял к 1.3 не успевают.
Есть, его даже msink пробовал использовать когда-то для своего эксперимента для UI под Native, но впоследствии забил, похоже. Сам cinterop -flavor -jvm, когда я его тыкал, не завёлся у меня. Но сил разбираться не было.

Alexander
11.09.2018
13:10:34
Кто-нибудь умеет из котлины делать upload по ssh без боли? Я опять с дуру решил попробовать kotlin gradle dsl и уперся в то, что из под него запустить gradle-ssh - нетривиальная задача.

Google
Ilya
11.09.2018
13:12:53
Народ помогите с такой задачей. Есть метод который внутри проводит проверки для цифр (<, > , <= и тп), хочу сделать метод, чтобы он делал это вне зависимости от типа. Попробовал такое fun <T : Number?> validateNumber(value: T, validation: ValidationItem?): Boolean но ругается на знаки сравнения

Ilya
11.09.2018
13:14:18
хмм

ну ладно, сделаю так

Alexander
11.09.2018
13:15:19
сравнений для абстрактных числе нет с умыслом, потому что не понятно, как их сравнивать. Так что приводите все к тому, что болше нравится и вперед

Ilya
11.09.2018
13:16:43
с точки зрения математики разницы в сравнении инта с даблом нету

Alexander
11.09.2018
13:17:20
Там проблема в том, что можно сделать вывод только по типу первого аргумента, а тогда получается, что операция может менять результат из-за перестановки параметров

Ilya
11.09.2018
13:17:20
Или все-таки сделать when(value) { is Long -> ... }
тогда мне придется делать вложенные when, да и тогда проще перегрузить методы

Руслан
11.09.2018
13:17:33
какие еще вложенные

Alexander
11.09.2018
13:17:48
Об это много кто бился, универсального решения нет.

Ilya
11.09.2018
13:18:18
какие еще вложенные
ну у меня для каждого isDouble, isLong надо будет еще такое вставить when (validation.validationType) { ValidationType.BETWEEN -> { true } ValidationType.EQ -> { requiredValue == value } ValidationType.NE -> { requiredValue != value } ValidationType.GT -> { value > requiredValue } ValidationType.GTEQ -> { value >= requiredValue } ValidationType.LT -> { value < requiredValue } ValidationType.LTEQ -> { value <= requiredValue } else -> { true } }

Alexander
11.09.2018
13:19:13
На "человеческих" числах проблем нет, но как только числа становятся слишком большими, слишком маленькими или реализация Number слишком кривой...

Ilya
11.09.2018
13:24:50
ну скажем Int можно к Long привести и объединить. А в случае с Double например у тебя мне кажется код местами должен отличаться, поэтому у тебя и выхода нет
так проблема была в том, что код был полностью идентичен и отличался только типами. Просто кейс такой: есть поля которые заполняет пользователь и для некоторых из них с сервера приходит особая валидация (например число больше 0), и получается, что валидация для всех цифр полностью идентична

Руслан
11.09.2018
13:25:50
И вот такая реализация без проблем с Double работает?

Ilya
11.09.2018
13:26:27
И вот такая реализация без проблем с Double работает?
на этапе компиляции все ОК, рантайм пока проверяю

Руслан
11.09.2018
13:28:52
Я не эксперт в сравнении чисел, но мне кажется тебе понадобится две реализации. Одна для Short, Int, Long и вторая для Double, Float. Потому что например сравнение Double обычно делают как-то так: (a - b) < eps

Alexander
11.09.2018
13:30:06
Пока это не математика, приведение всего к Double отлично прокатывает

Google
Alexander
11.09.2018
13:33:02
Я же сказал, пока не математика. В жизни таких чисел не бывает. Собственно именно поэтому сравнения на Number и нет

Если для математических задач, там нужны специальные решения (я несколько вариантов делал)

Alexander
11.09.2018
13:47:14
Я же сказал, пока не математика. В жизни таких чисел не бывает. Собственно именно поэтому сравнения на Number и нет
Сильное утверждение. Довольно большой набор чисел из лонга просто не может быть точно записан в дабле (Начиная от 2^53 вроде), что может быть уже достаточно критично, если ты дошёл до того, что тебе уже нужен лонг, а не инт. Для всего остального - да, наверное дабл отлично подходит.

Alexander
11.09.2018
13:47:52
Можно все приводить к BigDecimal, но это дорого и там свои проблемы

Alexander
11.09.2018
14:01:15
это смотря какую математику брать.

Admin
ERROR: S client not available

Alexander
11.09.2018
14:01:27
Для численных методов - есть

dimiii
11.09.2018
14:02:10
это смотря какую математику брать.
Я вспомнил про статистику (кто-то скажет это не математика) и различные типы шкал

Alexander
11.09.2018
14:02:53
Э, не надо про статистику. Там погрешности, это другое. Аналогия некоторая есть, но понятия типа там все равно нет.

Andrey
11.09.2018
14:39:41
Общего сравнения нет. К Double приводить не стоит из-за погрешности в представлении Long и из-за того, что BigInteger и BigDecimal - тоже Number. P.S. Радуйтесь, что тип Number не предполагает всяких комплексных чисел, кватернионов и прочего, для которых не существует отношения порядка вообще.

Ilya
11.09.2018
14:44:49
я правильно понимаю, что в котилне нету метода clone() (не для дата-классов), и нужно писать свою реализацию для каждого класса?

Ilya
11.09.2018
14:46:07
Andrey
11.09.2018
14:47:49
в java был метод "clone()"
Который protected, требует override с изменением области видимости и приписывания классу маркерного интерфейса? Нет, спасибо, не надо такого.

А, ещё и работает он через нативную магию в java

Руслан
11.09.2018
14:59:20


Andrey
11.09.2018
14:59:35
Хотя не, вру. Есть ощущение, что этот частный случай захардкожен в компилятор: class A: Cloneable { public override fun clone(): Any = super.clone() } fun main(args: Array<String>) { val a = A() println(System.identityHashCode(a)) println(System.identityHashCode(a.clone())) }

Никита?❄️
11.09.2018
15:01:33
а что за шрифт у тебя?

Google
Руслан
11.09.2018
15:02:13
а что за шрифт у тебя?
https://github.com/tonsky/FiraCode

Никита?❄️
11.09.2018
15:02:57
https://github.com/tonsky/FiraCode
восхитительно! спасибо!

Andrey
11.09.2018
15:14:09
восхитительно! спасибо!
Согласен, шрифт - агонь, особенно лигатуры для стрелочек, операторов сравнения и прочего.

Konstantin
11.09.2018
15:17:50
Сори за офтоп, но раз про шрифты, может кто знает, есть ли лигатуры для menlo? Или другой шрифт (fira code не зашёл)

Alex
11.09.2018
15:37:30
За фиру и двор ...

Sergey
11.09.2018
16:35:12
RC1 релизнулся

Igor
11.09.2018
16:40:22
Гуд гуд, кажись успевают к kotlinconf ?

Ivan
11.09.2018
16:50:31
Дааааа, я знал что на брейнсов можно расчитывать! https://youtrack.jetbrains.com/issue/KT-18483 Всё-таки сделали несколько функций

Sergey
11.09.2018
16:54:07
https://github.com/JetBrains/kotlin/releases/tag/build-1.3.0-rc-1

Oleg
11.09.2018
17:30:50
а ещё в тихоря 1.2.70 выложили на бинтрей https://bintray.com/kotlin/kotlin-dev/kotlin/1.2.70

Виктор
11.09.2018
17:35:02
У вас бывало, что сорцы не скачиваются в IDEA?
Бывало. Помогает посмотреть логи idea и поправить где просит

Sergey
11.09.2018
17:39:32
в 1.3M2 и EAP идеи дебаггер корутин стал получше, но все равно есть надоедливые баги

и теперь пытается везде секвенции впарить вместо работы над списками

Oleg
11.09.2018
17:46:58
https://teamcity.jetbrains.com/project.html?projectId=Kotlin_130&tab=projectOverview&branch_Kotlin_130=%3Cdefault%3E

что-то они походу сломали прямо перед релизом RC-1)

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