@kotlin_lang

Страница 746 из 982
Kirill
09.07.2018
20:10:20
А можно ссылку? Оо

студентские небось лицухи
На год подписку скорее всего

Роман
09.07.2018
20:10:54
https://stepik.org/187

там по 3 месяца лицухи дают на всё(в прямом смысле на всё)

Google
Роман
09.07.2018
20:11:55
https://stepik.org/2852

котлин вот ещё от JetBrains

последнее не тестил ещё

времени мало

Kirill
09.07.2018
20:13:13
последнее не тестил ещё
Судя по описанию это koans

Роман
09.07.2018
20:13:36
https://stepik.org/org/jetbrains вот чекни здесь

они кстати не только за своё дают лицензии

Taras
09.07.2018
20:15:11
Спасибо за ресурс огромное?

Quantum Harmonizer
09.07.2018
20:18:34
есть ли в стдлибе функции-утилиты типа { a, b -> a == b } или { a: Boolean -> !a }?

Mi
09.07.2018
20:19:46
а каким образом они тебе нужны? это ведь обычный equals и not

разве нельзя метод референс поставить

Google
Quantum Harmonizer
09.07.2018
20:21:31
можно, хотелось бы знать, есть ли готовые классы под это

обожаю метод референсы, но использую только в инлайнах, ибо в неинлайновых получается больше методов, чем в лямбдах

Dmitriy
09.07.2018
21:29:25
всем привет. подскажите, пожалуйста, вот если у меня есть переменная a, которая может быть null, я могу написать a?.hashCode(), например. А можно как-то записать для :: ? Т.е. есть какой-то аналог для a::class.declaredMemberProperties?

Dmitriy
09.07.2018
21:36:11
Какова цель, что должно получиться в итоге?
ну в итоге должно в конце цепочки быть ?: <дефольное значение>

Dmitriy
09.07.2018
21:38:07
Какова цель, что должно получиться в итоге?
что-то типа такого https://pastebin.com/sxE2Bg7P

fun<T: Any> T.getKClass(): KClass<out T> = this::class
т.е. типа a?.javaClass?.kotlin ?

Mi
09.07.2018
21:43:21
можно и так

Dmitriy
09.07.2018
21:44:56
можно и так
а это правильно так делать?

Quantum Harmonizer
09.07.2018
21:47:41
Нельзя такие вопросы задавать, когда используешь рефлексию :)

Dmitriy
09.07.2018
21:48:50
Нельзя такие вопросы задавать, когда используешь рефлексию :)
ну блин, я её использую, потому что использую спринг, который использует рефлексию, причём не так, как мне надо )

Vladislav
10.07.2018
05:47:30
К слову, как вот в этих json-типах колонок искать?
Все выборки по полям в jsonb работают, и также построение индексов. Все норм у postgre

Sergey
10.07.2018
08:03:34
@relizarov подскажите, появилось ли что-нибудь out-of-box для https://github.com/Kotlin/kotlinx.coroutines/issues/119

Roman
10.07.2018
08:16:25
Пока нет ничего лучше чем описано в issue

Sergey
10.07.2018
08:19:30
Ок, спасибо

Dmitriy
10.07.2018
08:44:39
всем привет. можно как-то записать вот это, без объявления переменной b? a.filter { b -> b is String }

Александр
10.07.2018
08:45:42
it

Dmitriy
10.07.2018
08:45:52
не, если it уже занята

Google
Evgeny
10.07.2018
08:45:55
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-is-instance.html

Dmitriy
10.07.2018
08:49:19
а получается, что filter { it.annotations.filterIsInstance<MyAnnotation>().isEmpty() } нельзя никак через none записать?

Алексей
10.07.2018
10:09:24
парни подскажите не сталкивались ли в такой ошибкой?

Error:Kotlin: Conflict duplicating -Xjsr305 value: strict, strict

сходу ничего не нагуглил

Alexander
10.07.2018
10:13:11
а получается, что filter { it.annotations.filterIsInstance<MyAnnotation>().isEmpty() } нельзя никак через none записать?
Страшный крокодил. Есть findAnnotation, он будет чуть короче, но не сильно лучше. Я бы свое расширение сделал: inline fun <reified T: Annotation> KAnnotatedElement.hasAnnotation(): Boolean = findAnnotation<T>() != null

Dmitriy
10.07.2018
10:21:08
т.е. мне надо собрать в мапу все свойства, у которых нет определённой аннотации, а потом скормить их конструктору, а если исходный объект null, то вернуть пустой документ

Alexander
10.07.2018
10:23:54
Я сам недавно такое делал. Будет эпик фэйл на приватных пропертях. Надо проверять на открытость.

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

Dmitriy
10.07.2018
10:24:42
Я сам недавно такое делал. Будет эпик фэйл на приватных пропертях. Надо проверять на открытость.
ну я уже на это наступил ) тесты падают, если проперти приватные )

Alexander
10.07.2018
10:25:06
надо делать filter{it.isAccesible}

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

У меня правда почему-то падало на проверке, с какой-то внутренней ошибкой, но потом перестало. Так и не понял, в чем дело было.

Dmitriy
10.07.2018
10:27:48
ну у меня не должно там быть приватных пропертей, по идее

надо обдумать это

писать в базу объект не со всеми свойствами - это тоже не очень хорошо будет

ещё вопрос, можно как-то сделать, чтобы подобный код не компилировался? assertEquals(1, Object()) можно как-то избежать того, что int будет к Object приводиться?

dimiii
10.07.2018
12:55:57
ещё вопрос, можно как-то сделать, чтобы подобный код не компилировался? assertEquals(1, Object()) можно как-то избежать того, что int будет к Object приводиться?
Это junit? Cмотрю какой-то пыльный javadoc - там public static void assertEquals(java.lang.Object expected, java.lang.Object actual) т/е это Норма. Избежать или использованием assertj, assertk etc или написать extension method Assert.assertEquals(int expected, whatever actual)

Google
dimiii
10.07.2018
12:59:55
jshell> boolean assertEquals(Object o1, Object o2) { return o1.equals(o2); } | created method assertEquals(Object,Object) jshell> assertEquals(1, new Object()) $2 ==> false

Dmitriy
10.07.2018
13:01:25
а, да, действительно ) я ошибся, в джаве тоже это проходит

Konstantine
10.07.2018
13:03:50
Почему оно должно не компилироваться, если оно принимает Object'ы

dimiii
10.07.2018
13:05:37
Почему оно должно не компилироваться, если оно принимает Object'ы
Ну мало ли, может у кого-то java до автобоксинговой версии (аминь) ?

Admin
ERROR: S client not available

Quantum Harmonizer
10.07.2018
13:06:06
хотелось бы какой-нибудь @DisableBoxing :)

Vladislav
10.07.2018
13:32:43
окей, котлин как сделать следующее: fun allString():List<String>=( arrayLIstOf<String>(<somestrings>) + arrayListOf<String?>(emptyString) ) где в случае String? нужно просто проигнорить если emptyString == Null ?

Хекс
10.07.2018
13:34:31
шта

Vladislav
10.07.2018
13:42:26
Есть getNullOrBlank или вроде того.
isNotNullOrBlank есть но он буль и так просто не конвертнешь =\

Quantum Harmonizer
10.07.2018
13:52:02
Зачем o_O
для решения вышеописанной проблемы

можно, кстати, сделать assertEquals(Int, Any?) и assertEquals(Any?, Int) с DeprecationLevel.ERROR

Andrey
10.07.2018
14:01:34
для решения вышеописанной проблемы
Ну проблема-то не в боксинге на самом деле. Боксинг - костылик для подправки того факта, что в Java примитивы не являются объектами (с точки зрения как ООП, так и ФП всё должно быть объектом). Вообще, проблема с assertEquals несколько надуманная. Ну не проверит это компилятор, ничего страшного. Это же тесты, они сразу на этой строчке и развалятся.

Mikhail
10.07.2018
14:03:44
можно, кстати, сделать assertEquals(Int, Any?) и assertEquals(Any?, Int) с DeprecationLevel.ERROR
А то что Int в котлине подтип Any? не помешает твоему плану?

Google
Mikhail
10.07.2018
14:05:34
А вот интересно, какая перегрузка возьмет верх если скормить два Int

Хотя, наверное тут поможет только assertEquals(T?, T?)

Andrey
10.07.2018
14:07:42
А вот интересно, какая перегрузка возьмет верх если скормить два Int
Никакая. Ошибка компиляции будет: Overload resolution ambiguity

Mikhail
10.07.2018
14:09:04
а должно?)
Вот и ответ на твой вопрос: > Никакая. Ошибка компиляции будет: Overload resolution ambiguity

Quantum Harmonizer
10.07.2018
14:09:35
даже для Int, неInt?

Andrey
10.07.2018
14:09:43
Вот если будет ещё определено fun assertEquals(a: Int, b: Int), то компилятор выберет её.

Quantum Harmonizer
10.07.2018
14:10:02
Оно как раз в jUnit Определено.

Andrey
10.07.2018
14:10:37
даже для Int, неInt?
Для Int, неInt будет выбрано assertEquals(a: Int, b: Any?)

Albert
10.07.2018
14:10:58
хм. как запустить fun main(...) в андроид студио. джавовый класс с мейном с кнопки запускается

просто праздный интерес)

Quantum Harmonizer
10.07.2018
14:12:41
хм. как запустить fun main(...) в андроид студио. джавовый класс с мейном с кнопки запускается
Так же, только он должен быть статическим. Либо top-level, либо @JvmStatic в companion

Albert
10.07.2018
14:14:10
ClassNotFoundException

class Main { companion object { @JvmStatic fun main(args: Array<String>) { println("Hey") } } }

Albert
10.07.2018
14:15:17
Mikhail
10.07.2018
14:15:48
да это понятно.
Ну и из него запускай main

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