
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
у тебя же на выходе булены

Dibro
12.07.2017
21:30:42

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

Google

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

Жабра
12.07.2017
21:35:45

Dibro
12.07.2017
21:36:08
почему не подходит?
и вот вам готовый пример с with: https://pastebin.com/zYi6Kxfq

Жабра
12.07.2017
21:40:17
Понял, большое спасибо!

Михаил
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

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'а убивается одни полем с массивом :(

Quantum Harmonizer
13.07.2017
11:24:09

Artur
13.07.2017
11:24:44

Quantum Harmonizer
13.07.2017
11:25:11

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