@kotlin_lang

Страница 856 из 982
Mikhail
08.09.2018
08:10:33
Разве json-simple умеет ленивое чтение?

Я в детали не вдавался, мне показалось, что либа не поддерживается лет 7, и что там мало что есть интересного

Alexander
08.09.2018
09:10:59
Ну вот вроде довольно новая статья https://blog.takipi.com/the-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json/

Google
Igor
08.09.2018
09:56:22
private val graph by lazy { val graph by graphDelegate() graph } как это записать, если не хочется кpовавых слез?

Alexander
08.09.2018
10:17:25
А вы так не делайте. Если совсем невмоготу, можно просто напрямую вызвать метод на инстансе делегата

Mikhail
08.09.2018
11:04:58
Ну вот вроде довольно новая статья https://blog.takipi.com/the-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json/
статье три года, исходников бенчмарка не видно, jmh не использовался

Igor
08.09.2018
11:17:27
Сделай compositionDelegate
Ну судя по всему да, для них в целом можно определить композицию довольно прямолинейно

Konstantine
08.09.2018
11:27:33
Кстати, котлиновские делегаты (lazy в частности) можно как-то из java использовать?

Quantum Harmonizer
08.09.2018
11:45:24
Открыл проект на другом компе. Run all tests in 'kotlin' > No tests were found in default package. Почему?

Andrey
08.09.2018
11:45:53
есть data class A я передаю KClass класса A и есть данные которые приходят с json, они в Any и уже распарсенные как можно замапить Any объект на data class используя KClass и получить data class A с данными почему нельзя было сразу замапить json на A ? - данные могут быть разные

Andrey
08.09.2018
11:47:34
Куда передаёшь?
в метод который должен конвертировать объект Any в data class с данными

Quantum Harmonizer
08.09.2018
11:48:01
Ivan
08.09.2018
11:51:54
Открыл проект на другом компе. Run all tests in 'kotlin' > No tests were found in default package. Почему?
Бывает такое в Идее, тесты подцепляются не с первого раза

Google
Andrey
08.09.2018
11:54:01
Так все вопросы к этому методу
та мне нужно его реализовать приходит название команды в виде строки в зависимости от команды приходят разные данные, естественно я не могу в компайл тайм типизировать свойство data у data class Request(val name: String, val data: Any) есть данные Any и на что мапить ( KClass ), а потом этот data class уже передается обработчику я хз как Any конвертнуть в конкретный data class используя KClass этого data class`a

Andrew
08.09.2018
12:02:46
Открыл проект на другом компе. Run all tests in 'kotlin' > No tests were found in default package. Почему?
Ну и проверь, кто именно используется как раннер тестов. JUnit 5 вообще отказывается работать с тестами в дефолтном пакете, ЕМНИП.

Andrew
08.09.2018
13:09:30
А где проверить? Не в дефолтном, а во всём, что под ним :)
Могу разве что предложить собрать зависимости для тестовой конфигурации в гредле и чекнуть их грепом.

Andrew
08.09.2018
13:43:58
Тогда я без идей.

OlegKrikun
08.09.2018
14:30:14
@Harmonizr а волшебный инвалидейт энд рестарт?

Quantum Harmonizer
08.09.2018
14:35:20
OlegKrikun
08.09.2018
14:37:18
долго(((
ну ок =)

Andrey
08.09.2018
16:53:06
как описать интерфейс в котором будет 1 метод, но у реализации этого метода тип аргумента будет разный ? будет 1 аргумент, но только разный тип

Alexander
08.09.2018
17:24:03
Дженерики. Читаем документацию

Andrey
08.09.2018
17:32:44
Дженерики. Читаем документацию
да знаю я про них, там тип определяется в runtime, никак я не смогу определить заранее тип дженерика Я же не могу вот сделать так допустим val type = CustomClass::class val gen = Some<type>()да и это бред же сивый я знаю какой тип нужен только в том месте где я его использую я выкинул бы интерфейс, но тогда никто не будет знать о том методе вот так вызывается допустим одна из имплементаций интерфейса interface RouteHandler { fun invoke(request: Any): Response }handler.invoke(request.data) - request.data это UserLikesRequest а вот сама реализация class UserLikesHandler(kodein: Kodein) : RouteHandler { override fun invoke(request: UserLikesRequest): Response { // тут ошибка, ожидается Any println("called ") return Response(request.number) } }

Alexander
08.09.2018
17:35:20
class Some<T>(type: KClass<T>){...}

Но вообще, в том примере просто Some<CustomClass>()

Andrey
08.09.2018
17:38:23
class Some<T>(type: KClass<T>){...}
KClass ожидает Any вместо T

Alexander
08.09.2018
17:38:50
Хорошо, class Some<T: Any>(type: KClass<T>){...}

По нулябельному типу класс не определяется

Если тип определяется на месте а не передается как параметр, то все это не нужно. Просто имя класса в треугольных скобках (не класс, а имя!)

Ivan
08.09.2018
20:39:19
а кто-то пробовал использовать Exposed?

что-то смотрю в него и сомнения так и лезут - я так понимаю у него неуправляемый неотключаемый аналог кеша второго уровня хибернейта встроен? и дефолтное поведениие при ошибках - попытаться повторить транзакцию еще два раза...

Google
Dumitru
08.09.2018
22:37:48


кто то знает в чем проблема ?, пробовал менять место r bundle по всему проекту, ничего не помогает

Ivan
08.09.2018
23:37:03
Парни, привет! Нужна срочная помощь! Особо не знаю котлин, но нужен код, чтобы доказать, что тайп инференс нормально работает)

typealias Fn<T> = (T) -> Void fun iterate<T>(l: Array<T>, c: Fn<T>): Void {} fun main() { iterate(arrayOf(1,2,3), (num) -> num.) }

Нужно так этот код дописать, чтобы когда в функцию iterate подают массив чисел, чтоб аргумент в колбеке как число определялся системой типов

Alexander
09.09.2018
00:15:01
Нужно так этот код дописать, чтобы когда в функцию iterate подают массив чисел, чтоб аргумент в колбеке как число определялся системой типов
Привет. Если я правильно понимаю твой вопрос, то хватит того, чтобы правильно написать тот код, что у тебя есть. 1. В Котлине есть свой тип Unit, который и будет означать, что функция ничего не возвращает. Подробнее о нём - https://kotlinlang.org/docs/reference/functions.html#unit-returning-functions Поэтому стоит заменить Void на Unit 2. Generic функции пишутся немного не так, как ты их написал. Объявление тайп параметра пишется до названия функции. Подробнее - https://kotlinlang.org/docs/reference/generics.html#generic-functions 3. Котлин предполагает немного другой синтаксис для лямбд. В фигурных скобочках и т.д. Подробнее тут - https://kotlinlang.org/docs/reference/lambdas.html#lambda-expression-syntax 4. Для запуска функции main необходим набор аргументов (как и в джаве). Выглядит обычно так: fun main(args: Array<String>), хорошо генерится командами main или psvm в идее Ну и конечно неплохо бы дописать конкретный пример. Например он может выглядеть так: typealias Fn<T> = (T) -> Unit fun <T> iterate(l: Array<T>, c: Fn<T>) = l.forEach(c) fun main(args: Array<String>) { iterate(arrayOf(1,2,3)) { println(it) } } P.S. Возможно для начала стоит пройтись по сайту: try.kotlinlang.org и выборочно по kotlinlang.org/docs/reference/

Kirill
09.09.2018
09:34:18
Привет, народ посоветуйте либу для написания тестов на котлине

Roman
09.09.2018
09:36:38
На JVM обычно используется https://junit.org/, для кросс-платформернных проектов есть https://kotlinlang.org/api/latest/kotlin.test/index.html

Kirill
09.09.2018
09:40:21
а spek?

о нем часто пишут в чатиках

название вспомнить не мог

Roman
09.09.2018
09:41:22
Кому-то нравится Spek, но обычно используют JUnit

Kirill
09.09.2018
09:41:54
оки, спасибо) пойду разбираться

Roman
09.09.2018
09:44:09
(чтобы было понятно Spek это грубо говоря Spock для Kotlin. Тем кто привык к стилю тестов в Spock хорошо заходит Spek)

Ivan
09.09.2018
11:17:37
Кому-то нравится Spek, но обычно используют JUnit
А вы внутри используете спек или котлин-тест?

Elena
09.09.2018
12:05:16
Привет. А в Спб есть сообщество котлинистов? Вот питонистов целых два. А как с котлином дела обстоят?

Kirill
09.09.2018
12:06:16
https://t.me/kug_spb

Admin
ERROR: S client not available

dimiii
09.09.2018
12:07:13
оки, спасибо) пойду разбираться
Почему spek https://resources.jetbrains.com/storage/products/kotlinconf2017/slides/Testing+Kotlin+at+Scale+%E2%80%94+Spek.pdf

Elena
09.09.2018
12:09:56
https://t.me/kug_spb
Спасибо.

Google
Elena
09.09.2018
12:10:48
И второй вопрос, кто читал котлин в действии? Нормально ли заходит, для тех кто раньше не кодил дальше калькуляторов на паскале?

Andrey
09.09.2018
12:21:32
подскажите, можно ли в котлине превратить стринг в имя переменной?

что-то типа setContentView(R.layout.dialog_$type)

Alexander
09.09.2018
12:23:14
И второй вопрос, кто читал котлин в действии? Нормально ли заходит, для тех кто раньше не кодил дальше калькуляторов на паскале?
Привет. Я бы сказал, что не совсем. Если на каком-то неплохом уровне владеть другими языками, то её можно прочитать, параллельно читая немного про Джаву. Но если опыта мало, то мне кажется, что с ней будет сложно, поскольку книга предполагает некоторый опыт программирования, в частности на джаве.

Kirill
09.09.2018
12:23:53
что-то типа setContentView(R.layout.dialog_$type)
Через рефлексию думаю можно

Но это не самый красивый способ

Konstantine
09.09.2018
12:25:56
что-то типа setContentView(R.layout.dialog_$type)
Если тебе нужна именно работа с ресурсами, то там много вспомогательных методов, для получения ID из имени и наоборот.

Konstantine
09.09.2018
12:27:20
Где их можно найти?
У класса Resources

Andrey
09.09.2018
12:27:49
да, с рефлекшнс просто не будет. Про ресуры почитаю, спасибо

Elena
09.09.2018
12:38:08
Привет. Я бы сказал, что не совсем. Если на каком-то неплохом уровне владеть другими языками, то её можно прочитать, параллельно читая немного про Джаву. Но если опыта мало, то мне кажется, что с ней будет сложно, поскольку книга предполагает некоторый опыт программирования, в частности на джаве.
Спасибо. Не могу найти хедфест про котлин , хотя его вроде выпускали. Пытаюсь на степике курсы грызть, но все равно кажется что не то что-то. Может есть РУ курсы, которые прям любят? В Гугле не забанили, но там все подряд.

Alexander
09.09.2018
12:48:21
Спасибо. Не могу найти хедфест про котлин , хотя его вроде выпускали. Пытаюсь на степике курсы грызть, но все равно кажется что не то что-то. Может есть РУ курсы, которые прям любят? В Гугле не забанили, но там все подряд.
К сожалению или счастью, но на русском вроде сейчас не очень много ресурсов. Насколько я помню, есть чаты в телеграме, есть kotlinlang.ru , есть книга Kotlin in Action. На английском есть чуть больше книг (Например от The Big Nerd Ranch Guide, она вроде чуть больше на новичков ориентирована), есть try.kotlinlang.org Мне казалось, что JB собирались тоже написать книгу, ориентированную для новичков, но тут я могу врать, конечно же.

Nail
09.09.2018
12:48:57
На степике хорошие курсы с computer science уклоном, минусом точно не будет)

Peter
09.09.2018
16:05:20
всем привет. абсолютно застрял на авторизации пользователя через google( Пробовал разные варианты. Нужно получить access token подскажите пожалуйста какие методы использовали в проектах

Peter
09.09.2018
16:08:13
пробовал через firebase, он возвращает idToken, но не нашел способа получить оттуда access token так же с gso пробовал получить через account Manager, но он почему-то перестал работать. Я так понимаю, что лучше всего использовать вариант через accountManager

Google
Alexander
09.09.2018
16:10:48
Этот вопрос к котлин не имеет отношения. Сейчас в гугле довольно удобный API. Работал только с Google Docs и там все есть в документации

Andrey
09.09.2018
16:12:18
пробовал через firebase, он возвращает idToken, но не нашел способа получить оттуда access token так же с gso пробовал получить через account Manager, но он почему-то перестал работать. Я так понимаю, что лучше всего использовать вариант через accountManager
вам нужно поднять http сервер, добавить роут на нем допустим oauth/google отослать запрос на сервер гугла с помощью библиотеки гугла для апишок, там указываете ваш полный url ( колбек ) он после удачного запроса делает запрос к вам на сервер с каким-то кодом доступа, это вроде и будет access если не ошибаюсь а если ошибаюсь то нужно еще отправить этот код для получения уже access токена в панели console.developers.google...... создаете ключи, указываете откуда будут идти запроса и с какого типа приложения эти ключи будут нужны для библиотеки апи гугла

Alexander
09.09.2018
16:13:22
ух, вы похоже очень мало работали с различными гугловыми апи)
Мало. И только с Google Docs, но там за последние два года существенный прогресс.

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