@kotlin_lang

Страница 564 из 982
Igor
27.02.2018
08:21:19
асинхронный код в котлине пока годен только в отрыве от БД
В плане? (можно мысль развернуть, а то не понятно)

Victor
27.02.2018
08:21:43
я юзаю для опшнл, и из дао обмазываю Try

тут ничего в плане асинхронности не меняется

её как не было

Google
Victor
27.02.2018
08:22:04
так и нет )

Igor
27.02.2018
08:23:13
Когда (если) появится, не забудь поделится экспириенсом

Alexey
27.02.2018
08:23:36
В плане? (можно мысль развернуть, а то не понятно)
Ну нет еще либ, которые предоставляют нормальную работу с асинхронным api, как например теже самые либы из скалки, которые сразу же точились на это

я бы сказал, в отрыве от любого IO
Не ну интерактить с асинхронными http/tcp клиентами нормально

Victor
27.02.2018
08:27:12
Когда (если) появится, не забудь поделится экспириенсом
имхо, он появится в обычном, "жабовском" виде

т.е. я не буду жонглировать монадами, во-первых я не умею, во-вторых, я не вижу необходимости

в проде то )

там так, проще: return paymentDao.getPayment(blabla). flatMap(payment -> userDao.getPaymentUser(payment.id) .also{ if it is Failure log("dao error") else log("dao success"} вернет в итоге Try<нужныйобъект>, можно будет помапить эксепшоны например, итд

код так и так последовательный, да еще и с обращением в базу, да и какие тут монады-то сдались )

guga
27.02.2018
08:50:34
а можно немного оффтопа? что за цветовая тема?

Victor
27.02.2018
08:50:41
кастомная

не сильно темная не сильно светлая

Google
Victor
27.02.2018
08:59:47
это не копипаста, условный код

и я чувствую, что дойду до скалы сперва)

Igor
27.02.2018
09:31:52
Ага “удобства” ?, я и говорю хочу посмотреть на это в реальном-продакшен-котлин-приложение

? animufag ?
27.02.2018
09:35:18
трансформеры в хаскеле эксплиситная боль в котлине ещё более эксплиситно

Alexey
27.02.2018
09:39:44
Ага “удобства” ?, я и говорю хочу посмотреть на это в реальном-продакшен-котлин-приложение
Может через пол годика я вам покажу FuckingGodnessMonad на котлине, есть идея сделать что то типо своего IO, чтобы контролить асинхронный флоу работы с базой

Ну и не только с базой

Igor
27.02.2018
09:51:49
Ну посмотрим, не решил ли ты на середине, что проще взять rxjava или даже корутины (а лучше бы кто-нибудь запилил плагин eta к idea)

Alexey
27.02.2018
10:01:05
Ну посмотрим, не решил ли ты на середине, что проще взять rxjava или даже корутины (а лучше бы кто-нибудь запилил плагин eta к idea)
eta же вроде не особо когда либо была жива, я как 6 лет назад на неё посмотрел, так там всё и по сей день

Я всё еще не понимаю как мне rxjava поможет в асинхронном доступе к базе

Alexey
27.02.2018
10:07:00
потом не забудь закоммитить в arrow-kt )
Не, это бизнесс специфик штука, она будет может быть работать поверх IO из arrow-kt или может быть рутин. Хз пока

Igor
27.02.2018
10:19:33
Я всё еще не понимаю как мне rxjava поможет в асинхронном доступе к базе
Ну как же, свой шедулер, операции map/flatMap и тд из коробки. А что сможет твой IO, чего нет в rxjava?

Alexey
27.02.2018
10:53:44
Ну как же, свой шедулер, операции map/flatMap и тд из коробки. А что сможет твой IO, чего нет в rxjava?
Ну я смогу понимать какой сейчас хочет выполниться эффект, и запущу его на отдельном треде например для jdbc сессии

Александр
27.02.2018
10:59:08
Всем привет

Можно ли написать на котлине функциональный интерфейс и использовать его как лямбду?

Gleb
27.02.2018
11:07:30
можно, но не нужно

Igor
27.02.2018
11:07:50
можно, но не нужно
Опа, это как?

Александр
27.02.2018
11:09:59
Да, как?

Gleb
27.02.2018
11:10:49
воу, воу сори за дезу

Google
Gleb
27.02.2018
11:11:15
почему-то показалось, что механика для Runnable и Callable работает повсюду

Александр
27.02.2018
11:12:10
Джавовский конечно можно юзать на котлине. Но у меня вопрос встал с написанным на котлине

При этом он ещё и обобщен

Gleb
27.02.2018
11:13:06
так а чем (T) -> R не устраивает?

Vladimir
27.02.2018
11:13:28
Можно ли написать на котлине функциональный интерфейс и использовать его как лямбду?
Нет, это было осознанное решение при разработке языка. Ждём, когда разрешат.

https://youtrack.jetbrains.com/issue/KT-7770

? animufag ?
27.02.2018
11:16:02
там вроде invoke можно определить и вроде получается не очень

Александр
27.02.2018
11:18:48
Всем спасибо

так а чем (T) -> R не устраивает?
Это годно. Просто наткнулись на это в коде и сидим думаем зачем да почему

Sergey
27.02.2018
12:47:51
Добрго дня. Только изучаю котлин, поэтому прошу сильно не пинать. Есть двухмерный массив. var array: Array<Array<String» Как мне его проинициализировать? Как мне потом в него что-то добавить?

Александр
27.02.2018
12:51:50
var foo = listOf(listOf(bar1,bar1), listOf(bar2,bar2)) Наверн так

Konstantine
27.02.2018
12:53:51
Array<Array<String» (size, { Array(size, { "default string" }) })

Александр
27.02.2018
12:56:21
А, массив, упс :)

Andrew
27.02.2018
13:01:01
> Как мне потом в него что-то добавить? Количество элементов в массиве не меняется, потому либо копировать в новый с другим размером, либо брать MutableList в зависимости от ситуации.

Sergey
27.02.2018
13:02:19
По-моему,как-то сложно. Я считаваю построчно из файла логины\пароли, добавляю их в двумерный массив. Кол-во строк известно, кол-во элементов во втором массиве тоже.

Sergey
27.02.2018
13:03:33
Почему мне не нужен массив и нужен список7

Mikhail
27.02.2018
13:03:52
»Кол-во строк известно, кол-во элементов во втором массиве тоже.

Google
Andrew
27.02.2018
13:04:32
mutableListOf под капотом возвращает ArrayList, который будет достаточно эффективен для задачи и при этом не будет иметь ограничений, накладываемых массивами.

https://stackoverflow.com/a/716641

Alexey
27.02.2018
13:07:34
Почему мне не нужен массив и нужен список7
Потому что массив - примитив, и в 99.999999% случаев хватает ArrayList

Bogdan
27.02.2018
13:08:13
Sergey
27.02.2018
13:09:33
просто mass[stroka][stolbec] = obj
Не понял данной записи

Bogdan
27.02.2018
13:09:57
Не понял данной записи
дебе нужно добавить новый елемент или изменить его?

Sergey
27.02.2018
13:10:35
у меня есть файл, я построчно считываю его, спличу и, получившийся массив, добавляю в другой массив.

На жабе я знаю как, на котлине пока не догоняю

Admin
ERROR: S client not available

Sergey
27.02.2018
13:12:01
пока жы на джаве
Если по-тупому, то циклом for (int i ...) { obj[i]= ... }

Anatoly
27.02.2018
13:12:10
На жабе я знаю как, на котлине пока не догоняю
IDEA умеет конвертить из Java в Kotlin :)

Andrew
27.02.2018
13:15:12
https://kotlinlang.org/docs/reference/control-flow.html#for-loops Тогда уже примеры с indices / withIndex()

Виталий
27.02.2018
13:17:10
возможно ли такое: есть array<MainTIle> парсю текст RedTile=movable,scalable разбираю текст: хочу получить class RedTile : MainTile{} с методами : fun move() fun scale() то есть сгенерировать класс с интерфейсом и возможными методами ?

и переменными

в это array<> загоняю в зависимости от отпарсиного

Google
Sergey
27.02.2018
13:18:30
for(i in mass){}
проблема в том, что у меня не получается проинициализировать. А так же я пока не догоняю как можно добавить что-то в массив

Виталий
27.02.2018
13:21:08
я не в текущей теме, но разве добавить в массив, имеет несколько понятий ?

Виталий
27.02.2018
13:22:08
Только заранее кастомным Gradle-плагином или в рантайме с помощью bytecode weaving -- но тебе не понравятся оба варианта.
мне уже прочитанное не понравилось (не понимаю), так что буду по другому думать , спасиб за ответ)

Andrew
27.02.2018
13:22:44
Котлин -- это всё-таки не скриптовый язык, чтобы такое иметь из коробки.

Bogdan
27.02.2018
13:23:31
Виталий
27.02.2018
13:24:17
дабавлять в масив новые елементы нельзя
в изменяемый воде как можно, элементы одного типа

Bogdan
27.02.2018
13:24:42
в изменяемый воде как можно, элементы одного типа
вот, а он говорит добавлять, я и переспрашиваю он об изменять или нет

Виталий
27.02.2018
13:25:45
Mikhail
27.02.2018
13:39:58
возможно ли такое: есть array<MainTIle> парсю текст RedTile=movable,scalable разбираю текст: хочу получить class RedTile : MainTile{} с методами : fun move() fun scale() то есть сгенерировать класс с интерфейсом и возможными методами ?
тебе поможет паттерн EntityFramework. Определи Entity и Component, из которых они будут состоять. Entity должна иметь метод dispatch, она будет прогоняться по всем Component и пытаться втюхать им сообщение, которое надо обработать

если хочешь почитать примеры кода - погугли LibGDX Ashley

Виталий
27.02.2018
13:44:38
если хочешь почитать примеры кода - погугли LibGDX Ashley
да уже писали мне не раз... все торможу с прочтением и пониманием.

Mikhail
27.02.2018
13:47:31
Если нет, поставь, поиграйся, сделай простую игрушку типа Flappy Bird в пару строк и поймешь Entity Framework

Виталий
27.02.2018
13:48:52
Ты пробовал Unity 3D?
нет, я не хочу драг н дроп, я хочу кодить))

Если нет, поставь, поиграйся, сделай простую игрушку типа Flappy Bird в пару строк и поймешь Entity Framework
а в флаппи берд где там вообще использовать это ? там 5 объектов на всю игру)

Andrew
27.02.2018
13:50:47
Если ты хочешь кодить -- садись и читай документацию. Если с этим проблемы -- уж пересиль себя и поиграйся с драг-н-дропом, чтобы понять концепцию. Ты пришёл за советом -- ты получил совет. Писать за тебя ECS тут никто не будет. Учить пользоваться массивами тоже. Не сочти за грубость, просто я не вижу желания учиться.

Andrew
27.02.2018
13:52:54
а в флаппи берд где там вообще использовать это ? там 5 объектов на всю игру)
Эти 5 объектов -- прекрасная песочница, чтобы начать. Не получится у тебя сразу Дум написать. Или Цивилизацию. Или хотя бы их треть. Начинай с малого.

А что ты собираешься без английского делать, я вообще с трудом представляю себе.

Alexey
27.02.2018
13:54:22
http://kotlinlang.ru/ Наслаждайся

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