
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
10:47:03

Mikhail
08.09.2018
11:04:58

Igor
08.09.2018
11:17:27

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 ? - данные могут быть разные

Quantum Harmonizer
08.09.2018
11:46:10

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

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

Quantum Harmonizer
08.09.2018
12:39:35

Andrew
08.09.2018
13:09:30

Quantum Harmonizer
08.09.2018
13:35:55

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

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

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

Google

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

Kirill
09.09.2018
12:21:15

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
Но это не самый красивый способ

Konstantine
09.09.2018
12:25:56

Kirill
09.09.2018
12:26:33

Konstantine
09.09.2018
12:27:20

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 уклоном, минусом точно не будет)

Алексей
09.09.2018
12:56:15

Никита
09.09.2018
13:03:22

whalemare
09.09.2018
13:31:03

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

Andrey
09.09.2018
16:06:36

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 и там все есть в документации

Mi
09.09.2018
16:12:05

Andrey
09.09.2018
16:12:18

Alexander
09.09.2018
16:13:22