@kotlin_lang

Страница 246 из 982
Anton
12.07.2017
18:23:08
any я уже починил

теперь верифай валится

но это возможно я затупил

Михаил
12.07.2017
18:23:47
https://github.com/nhaarman/mockito-kotlin

Google
Anton
12.07.2017
18:24:06
это в дополнение к мокито ставить?

или он тянет

Михаил
12.07.2017
18:24:20
в дополнение

Anton
12.07.2017
18:24:26
спасибо

Михаил
12.07.2017
18:24:32
и там отдельная функция для verify вроду есть

Anton
12.07.2017
18:25:28
а корутины как тестить ставить runblocking?

Михаил
12.07.2017
18:26:17
смотря что тестить)

Anton
12.07.2017
18:26:58
вот такую простую штуку override fun getTask(id: Long) { async(CommonPool) { val data: Deferred<Task?> = bg { tasksRepository.getTaskById(id) } data.await()?.let { taskView.showTask(it) } } }

Vik
12.07.2017
21:09:56
видел кто docset котлина для dash.app https://kapeli.com/dash ?

Scala есть, groovy есть

а котлина нет

You
12.07.2017
21:11:05
Непорядок

Vik
12.07.2017
21:11:35
https://github.com/sirlantis/kotlin-docset

Google
Vik
12.07.2017
21:11:44
будем поглядеть

на сколько это свежо

Anton
12.07.2017
21:14:13
крутая штука

спасибо)

Vik
12.07.2017
21:14:36
попробую собрать

Жабра
12.07.2017
21:21:16
Подскажите, пожалуйста, какую языковую конструкцию лучше всего использовать, чтобы элегантно описать следующее: в зависимости от состояния свойств некоторого объекта, в новую переменную будет записан некоторый результат. When не подходит, т.к. нужно просматривать сами свойства. А по 50 раз писать val newElem = .... после каждого if-a как-то не очень. Просто я ещё не очень разобрался со всеми языковыми конструкциями этого языка...

Сейчас пример кину



Михаил
12.07.2017
21:25:30
newElem = if (bool) null else if (bool2) ...

правда имхо тут с when лучше бдуте

Жабра
12.07.2017
21:26:11
И как сюда when прикрутить? Каждый раз будут меняться условия.

Михаил
12.07.2017
21:26:15
new Elem = when { condition -> condition2-> }

Жабра
12.07.2017
21:26:49
1) left & right 2) left 3) right 4) else

Я бы тоже с удовольствием when использовал

И ещё не хотелось бы постоянно писать current. Хотелось бы его засунуть во что-то и вызывать только сами left и right.

Михаил
12.07.2017
21:29:31
1) left & right 2) left 3) right 4) else
а в чем проблема?

у тебя же на выходе булены

Михаил
12.07.2017
21:30:53
либо дестракчеринг и какой-нибудь let

Google
Михаил
12.07.2017
21:35:24
хотя второй вариант в целом интереснее, ибо в каждом месте не придется локальные переменные заводить

Жабра
12.07.2017
21:35:45
.apply/run/with
Ни одно из них не подходит.

либо дестракчеринг и какой-нибудь let
Можно вкратце о дестракчеринге?

Dibro
12.07.2017
21:36:08
почему не подходит?

Можно вкратце о дестракчеринге?
если у объекта есть методы component1(), component2(), componentN(), то его можно деструктурировать как val (a, b) = obj

и вот вам готовый пример с with: https://pastebin.com/zYi6Kxfq

Михаил
12.07.2017
21:41:21
для дата классов такое автоматом генерится

в порядке аргументов конструткора

DarkMentat
12.07.2017
21:47:18
Это релиз кандидат канари, или уже релиз?

Dibro
12.07.2017
21:47:53
DarkMentat
12.07.2017
21:48:50
а, думал что-то пропустил, раз тут серьёзно к еапу относятся)

Михаил
12.07.2017
21:50:37
в еапе 1.1.4 жесть сколько фиксов

Dibro
12.07.2017
21:50:57
Михаил
12.07.2017
21:51:07
https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md

Dibro
12.07.2017
21:51:26
спасибо

Михаил
12.07.2017
21:52:25
Support inline suspend function

Google
Михаил
12.07.2017
21:52:32
это как :\

Dibro
12.07.2017
21:53:22
а что не так?

я вот жду Inline function with optional functional parameters

Admin
ERROR: S client not available

Dibro
12.07.2017
21:53:53
но эт только в 1.2 :(

Михаил
12.07.2017
21:54:27
а что не так?
да чет не сразу вдуплил как это будет)

Sasha
12.07.2017
23:20:29
а, думал что-то пропустил, раз тут серьёзно к еапу относятся)
а вы сутками напролет серьезный продакшен код порождаете на свет божий?)

Ganyacia
13.07.2017
04:08:04
https://t.me/folderarchive — канал, где сливают платный полезный образовательный контент и курсы.

DarkMentat
13.07.2017
04:53:23
а вы сутками напролет серьезный продакшен код порождаете на свет божий?)
Не, сам вчера еап поставил. Просто ожидаю от него ничего

You
13.07.2017
05:53:42
есть какое-нибудь апи мавена, чтобы я мог по пакету узнать инфу о нем?

Nikita
13.07.2017
06:49:58
работать с мокито на котлине без экстеншена это садомазо
мне норм. А есть какие то расширения котореы позволяют работать удобнее?

просто у меня кусок кода : val call: Call<AuthConfirmCodeResponse> = Calls.failure(UnknownHostException()) \`when\`(apiService.postAsyncConfirmCode(eq(phone), eq(code), eq(mac))).thenReturn(call) `вполне схож с твоим, разве что я передаю примитивы вместо конкретных классов, отвечающих за запрос

Anton
13.07.2017
06:56:59
У тебя нет any здесь

Которая для для не примитивов и примитивов после боксинга вернёт нулл

Nikita
13.07.2017
07:00:47
А. Ну вот например: \`when\`(apiErrorUtil.parse(any(UnknownHostException::class.java))) .thenReturn(error)

Sergey
13.07.2017
07:04:00
экстешены заюзай, тогда будет whenever )

Nikita
13.07.2017
07:07:36
по поводу моего вчерашнего вопроса про суперконструкторы так и не разобрался. Смотрите, есть классы А: open class A(val id: Int = -1, val name: String = "empty") Класс B, наследник А: data class B(var value: Boolean = false) : A() . Как создать конструктор класса В такой, что бы он принимал все три параметра (и свои и родителя)? То есть что то вроде этого (следующий конструктор класса B семантически для котлина не корректнен): data class B(var value: Boolean = false) : A() { constructor(id: Int, name: String, value: Boolean) : this(value), super(id, name) { }}

и да, новое значение класса B может меняться, тогда как А - нет

Yuri
13.07.2017
07:18:21
если data класс не критичен, то можно попробовать так open class A(val id: Int? = -1, val name: String? = "empty") class B(var value: Boolean, id: Int? = null, name: String? = null) : A(id, name)

Nikita
13.07.2017
07:26:46
если data класс не критичен, то можно попробовать так open class A(val id: Int? = -1, val name: String? = "empty") class B(var value: Boolean, id: Int? = null, name: String? = null) : A(id, name)
можно, тогда придется переопределить equals/hashCode. + очень громоздко выглядит...С java и простым билдером выглядело красивее, на мой взгляд

Google
Artur
13.07.2017
08:30:08
Имеется data class, внутри есть IntArray. Как правильно переопределить equals в этом случае?

Забавно, что если сделать класс обычным и сгенерить в IDE equals-метод, то сгененрированный код корректно проверяет equals для массива.

Roman
13.07.2017
08:33:26
1.1.4 -> https://youtrack.jetbrains.com/issue/KT-15893

Artur
13.07.2017
08:35:07
Quantum Harmonizer
13.07.2017
08:40:47
Почему, собственно, Котлин не считает хэш-коды массивов в сгенерированных hashCode?

Nikita
13.07.2017
08:41:02
Долго

Quantum Harmonizer
13.07.2017
08:41:59
А, точно, по тем же причинам, по которым на JVM у массивов ущербный hashCode...

Nikita
13.07.2017
08:42:22
Да :)

Artur
13.07.2017
09:07:36
Вся прелесть data class'а убивается одни полем с массивом :(

1.1.4 -> https://youtrack.jetbrains.com/issue/KT-15893
Я правильно понимаю, что нужно все-таки переопределить метод equals?

Artur
13.07.2017
11:24:44
Да, и hashCode.
Спасибо) Но я настолько ленив, что array перегнал в list ?

Quantum Harmonizer
13.07.2017
11:25:11
Спасибо) Но я настолько ленив, что array перегнал в list ?
Так коллекции вообще предпочтительнее, если речь идёт не о примитивах.

Artur
13.07.2017
11:26:03
к сожалению, о примитивах речь. Но конкретно в этом случае, всё должно быть ок.

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