@kotlin_lang

Страница 31 из 982
Boris
03.02.2017
17:24:10
Свой движок или сторонний какой?

Igor
03.02.2017
17:24:17
libgdx

Boris
03.02.2017
17:24:35
Так и думал

Igor
03.02.2017
17:25:30
Очевидно же У меня все мысля ходит, написать на нем _приложение_, ведь там есть базовый набор контролов + kotlin dsl для UI. Из плюсов: кросплатформенность и тестирование/отладка без эмуляторов.

Google
Boris
03.02.2017
17:25:54
Я просто на досуге занимаюсь движком который должен а итоге быть полностью на котлине и имеет возможность собирать еще в жс

С rx, биндингами, di и другим преферансом

Да, склетное приложение не помню как называется, сделано на нем, но там явно не голый либгдх

Igor
03.02.2017
17:35:14
С rx, биндингами, di и другим преферансом
Такой то мейнстрим: RX + MVVM + DI (наверное Dagger2). Когда же уже народй перейдет на функциональное программирование на JVM/Android? Был бы нормальный haskell под android, наверное ушел бы на него ?

Boris
03.02.2017
17:40:54
Функциональный подход пока не для геймдева

Слишком много состояний

Igor
03.02.2017
18:07:25
в чем выгода от такого перехода?
Для динамической игры точно никакого. А вот статичные окна (меню/настройки/магазин) можно спокойно сделать. В том же Xamarin есть поддержка F#.

Igor
03.02.2017
18:28:46
Знаете как работает ReactJS и компоненты в нем?

Boris
03.02.2017
18:44:29
ну да, в общих чертах

но я бы в полной мере функциональным этот подход не назвал

вроде, по сути там самые обычные компоненты, и биндинги в шаблонах, чего-то такого особо функционального там не помню

Google
Igor
03.02.2017
18:59:21
Конечно в основном на функциях и у нас сделана бизенс-логика (авторизация/покупки/логика показы рекламы ?). Компоненты просто мапят данные из функций в UI контролы (там и биндига никакого нет в понимании MVVM). Можно было бы сделать более функ. код с подходом Redux, но мне это кажется слишком радикальным.

Boris
03.02.2017
19:05:35
всё равно не понял, почему он функциональный :-)

наверное в какой-то мере функциональным подходом можно называть биндинги, javafx довольно хороший пример

Руслан
03.02.2017
21:16:51
в том числе поэтому в новом коде за SimpleDateFormat нужно бить по рукам
прошелся по нашим докам, и нашел где DD вместо dd используется. Пошел на сервак посмотреть логи, а там

Михаил
03.02.2017
21:26:41
33 февраля

Норм

Руслан
03.02.2017
21:31:51
Самое смешное что у меня сильное дежавю, и вправду, не я один такой https://twitter.com/shipilev/status/827125162608824321

Sasha
04.02.2017
04:29:20
33 февраля
У кого-то праздники явно удались)

Yuri
05.02.2017
14:20:30


коллеги, а подскажите, куда конкретно этот флаг надо писать?

собираю gradle`ом

Руслан
05.02.2017
14:24:37
http://kotlinlang.org/docs/reference/using-gradle.html#attributes-specific-for-kotlin

compileKotlin { kotlinOptions { jvmTarget = "1.8" } }

попробуй

Yuri
05.02.2017
14:28:56
попробовал, не помогло

pplcf
05.02.2017
14:54:33
в самой ИДЕ то 1.8 стоит?

Project Structure -> Project SDK

там еще Language level 8 поставь

Михаил
05.02.2017
15:44:28
вышла финальноая версия Kotlin in Action

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

Google
Yuri
05.02.2017
17:51:54
pplcf
06.02.2017
06:10:33
да, все так
Language level в 8 выставил?

Restart & Invalidate Caches

Aliaksei
06.02.2017
12:40:08


Чёт затупил что не нравится

Руслан
06.02.2017
12:41:35
http://kotlinlang.org/docs/reference/generics.html

Вот тут ответ ;)

Vlad
06.02.2017
12:50:11
на хабре еще статья была))

короче у тебя там T обявлено как выходящий дженерик тип (из которого можно брать), в этом случае он ковариантный, если я правильно помню

короче, мне и самому перечитать не мешает)

Aliaksei
06.02.2017
12:53:13
Ну вот про out in я наверное раз пять читал когда знакомился с котлином, но там у меня нету места для in

class PaginationResult<out T>(val page: Int, val total: Int, val data: List<T>)

Руслан
06.02.2017
12:54:10
Хм, а листе ты конкретно T используешь?

out T

Aliaksei
06.02.2017
12:55:25
эм, да

но я не работаю с элементами

просто PaginationResult.data

поэтому у меня и возник вопрос, wtf?

сделал как в джавке

Руслан
06.02.2017
12:58:08
А у тебя T на классе было?

Google
Aliaksei
06.02.2017
12:58:39
ну и на классе где функция

Руслан
06.02.2017
12:59:18
ну и на классе где функция
ну там и интересует, покажи

Aliaksei
06.02.2017
12:59:43


Quantum Harmonizer
06.02.2017
13:03:09
Какой няшный шрифт. Ретина?

Boris
06.02.2017
13:03:38
да, тоже на шрифт обратил внимание

Dmitry
06.02.2017
13:03:50
fira code?

Aliaksei
06.02.2017
13:04:12
Вы мне лучше расскажите почему не компилится))

да, ретина и firacode

Boris
06.02.2017
13:04:25
и про дженерики можно было бы что-то сказать, если бы кусок кода, который не работает в виде текста прислать

а так по картинке гадать тяжело

Aliaksei
06.02.2017
13:04:49
Согласен, сделаю

Boris
06.02.2017
13:05:12
я подозреваю в чем дело, но лучше посмотреть на текст

Руслан
06.02.2017
13:06:35
class Sample<out T>(val data: T) { fun work(other: T) { } }

Aliaksei
06.02.2017
13:07:08
не... ну это как вообще с моим примером похоже?

Руслан
06.02.2017
13:07:23
Идентично по смыслу

Aliaksei
06.02.2017
13:07:28
ок, почему?

Ну как бы я понимаю что ты имеешь ввиду

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

Руслан
06.02.2017
13:12:15
Ну ты типо говоришь: да мне пох что сюда придет, хоть any

Google
Boris
06.02.2017
13:12:56
если утрировать, то in и out они называются, потому что те, что in они должны на вход приходить (в параметры), а те, что out наоборот возвращаться, но в твоем случае этим типом ты параметризируешь тип возвращаемый из функции, тем самым он поправдает в позицию in

Aliaksei
06.02.2017
13:23:31
@fogone Ну вот теперь я буду иметь это ввиду, в моём же случае я не передавал тип в функцию, а передал лябду которая возвращает этот тип и подумать то не мог что это будет засчитано как in

в доках такого не нашёл, и не считаю до сих пор что это прям логично, не?

Boris
06.02.2017
13:24:08
да не, тут в дженериках всё более чем всё непонятно

Aliaksei
06.02.2017
13:24:39
ведь я передаю функцию, которая "возвращает" <T>

Boris
06.02.2017
13:24:43
я сейчас пытаюсь простой кейз придумать, чтобы было понятно, почему оно так работает

проблема в том, что саму функцию ты тоже принимаешь в параметр

Aliaksei
06.02.2017
13:25:19
я бы понял если было так fn: (t: Pagination<t>) -> Unit

Boris
06.02.2017
13:26:36
я попробую сейчас подобрать кейз

это не всегда просто

Aliaksei
06.02.2017
13:26:47
Да ладно, не парься

Надо задать вопрос из jb ))

> проблема в том, что саму функцию ты тоже принимаешь в параметр Ну как бы... такое

Boris
06.02.2017
13:27:35
дженерики вещь хрупкая

Aliaksei
06.02.2017
13:27:48
Да норм

Boris
06.02.2017
13:28:10
накладываем много ограничений, и они не всегда сходятся друг с другом

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