@kotlin_lang

Страница 553 из 982
Vadim
20.02.2018
09:27:19
пробую Enum.valueOf ... но почему-то он не может найти метод valueOf у Enum'a

Quantum Harmonizer
20.02.2018
09:28:57
Но я не раз костылил: java.lang.Enum.valueOf

Vadim
20.02.2018
09:30:13
Google
Sergey
20.02.2018
11:40:08
Всем привет! Есть идеи, почему корутины не работают на часах Moto 360 1го поколения?

Simon
20.02.2018
11:42:00
Как именно не работают?

Sergey
20.02.2018
11:42:26
Вообще не запускаются. На других часах всё ок.

async { Log.d("Q1", "Start async") } launch { Log.d("Q1", "Start launcher") }

Эти строки вообще не выполняются. Работает только runBlocking

Quantum Harmonizer
20.02.2018
11:43:13
Nick
20.02.2018
12:38:04
Подскажите плиз. Есть файл kt в нем есть: val fff = testFunc(); fun testFunc():String { println("Тест") return "test" } Почему при старте программы функция не исполняется ? Логично, что fff должен инициализироваться при старте программы. Если поместить это определение в файл где есть main, то функция вызывается при старте! В чем прикол?

Mi
20.02.2018
12:39:27
А ты этот файл как-нибудь используешь в программе?

Mi
20.02.2018
12:40:26
Это ж как инициализация статики в джаве, по первому обращению

Nick
20.02.2018
12:48:41
хм

Виталий
20.02.2018
12:49:31
можно как то объявить пустую функцию высшего уровня, а потом генерировать ее исходя из перечисления ?

Google
Виталий
20.02.2018
12:49:47
или лямбду..

Виталий
20.02.2018
12:55:22
я не понял, например
ну типа fun aaa() {} when { 1 -> aaa.add(func1) 2 -> aaa.add(func2) } fun update() { aaa() }

тоесть при инициализации, что бы потом в update по when`ам не бегать, если их много )

Andrew
20.02.2018
12:56:11
aaa.add(func1) Понятнее не стало. Что это должно делать?

Dibro
20.02.2018
12:57:01
а потом где-нибудь её инициализируй

Vitalii
20.02.2018
12:57:30
Если я правильно понял, то можно попробовать lateinit val lambda when { 1 -> lambda = /*пишешь свою лямбду*/ }

Виталий
20.02.2018
12:57:34
aaa.add(func1) Понятнее не стало. Что это должно делать?
есть функция update() что бы в ней не делать кучу when, в ней-же вызывать функцию, которая была сгенерирована when`ами при иниуиализации обхекта

может lateinit var foo: () -> Unit
вот наверное, ща попробую

Dibro
20.02.2018
12:58:34
вот наверное, ща попробую
можно даже val foo: () -> Unit by lazy { ... }

Виталий
20.02.2018
12:58:37
Если я правильно понял, то можно попробовать lateinit val lambda when { 1 -> lambda = /*пишешь свою лямбду*/ }
я не хочу использовать when, если там тонна перечислений, я хочу на основе when при инициализации создать нужную функцию

Dibro
20.02.2018
13:00:01
если уже костылить то по полной

Виталий
20.02.2018
13:08:36
спасибо, вроде оно

Quantum Harmonizer
20.02.2018
13:09:00
lateinit там лишний

Google
Виталий
20.02.2018
13:09:26
lateinit там лишний
да, спасибо)

Dibro
20.02.2018
13:09:45
и var на val можно поменять

Виталий
20.02.2018
13:09:51
это навреное костыль что бы обойти наследование у меня получился

и var на val можно поменять
поменял, только вот when еще подсвечивается, предлагаемые варианты замены все ломают

Dibro
20.02.2018
13:11:00
Виталий
20.02.2018
13:11:37
Dibro
20.02.2018
13:12:06
это типа эшли ?
да, или artemis-odb

Виталий
20.02.2018
13:12:39
да, или artemis-odb
пробовал, не вошло в мою голову, жду уроков по эшли на данный момент )

Dibro
20.02.2018
13:15:07
пробовал, не вошло в мою голову, жду уроков по эшли на данный момент )
просто сейчас у тебя эта лямбда будет каждый фрейм вызываться, лучше действительно when в методе, чем такой костыль

Виталий
20.02.2018
13:16:22
просто сейчас у тебя эта лямбда будет каждый фрейм вызываться, лучше действительно when в методе, чем такой костыль
почему она будет вызыватьс я? я ведь присваиваю ее в init{}, а в update() уже готовую юзаю

Dibro
20.02.2018
13:17:03
Виталий
20.02.2018
13:18:17
юзаешь то ты лямбду, она там не инлайнится
и что при каждом вызове она создается как байт код или как ? не пойму немного

компилится каждый вызов заного ?

Dibro
20.02.2018
13:20:03
и что при каждом вызове она создается как байт код или как ? не пойму немного
не создаётся. просто в данном случае, имхо, определение действия сразу в методе будет быстрее, чем сам вызов лямбды. но я не эксперт, мб и не так

Виталий
20.02.2018
13:21:09
)))

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

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

Dibro
20.02.2018
13:27:35
> как лямбды эти ваще лямбдятся в копилочку

Google
Виталий
20.02.2018
13:28:00
)))

перевел в жабу... там какой то ужас

Денис
20.02.2018
13:28:19
Лямбдуются

Va
20.02.2018
13:39:40
ребят, насколько может быть дорого хранить в рантайме лямбды в списке ?

Quantum Harmonizer
20.02.2018
13:40:16
ребят, насколько может быть дорого хранить в рантайме лямбды в списке ?
настолько же, насколько просто использовать лямбды)

Va
20.02.2018
13:41:53
ладно. у кого-то есть примеры построения DSL чуть сложнее, чем html-билдер ?

Gleb
20.02.2018
13:42:22
tornadofx ?

Quantum Harmonizer
20.02.2018
13:43:14
Va
20.02.2018
13:44:51
ладно, сразу в лоб вопрос задам. есть класс(service), который должен хранить правила конфигурации для объектов. так, чтобы в итоге service.buildFor(object) возвращал Configuration. я хочу, чтобы можно было использовать условный configure { object -> ... } с контекстом какого-то билдера, который уже написан

но вопрос в том, что я хочу делать наследников Service, и, вызывая configure { object -> ... } у наследника, дополнять конфигуратор родителя

первое пришедшее в голову решение в лоб — хранить лямбды в списке, на котором потом вызывать fold

но чет мне это не нравится ))

о, телеграм развис

Денис
20.02.2018
13:53:45
Va
20.02.2018
14:01:14
похоже, что теперь точно да )

неужели ни у кого нет идей ?(

Mikhail
20.02.2018
14:25:45
По мне нормальная идея

Как бы список обьектов тебя же не смущает? Почему тебя смущает список функциональных обьектов?

Va
20.02.2018
14:28:17
не знаю, в голове где-то вертится решение элегантнее, просто не могу его ухватить )

Mikhail
20.02.2018
14:40:33
Google
Va
20.02.2018
14:44:08
проблема номер 2, object у меня типизированый, и, по-хорошему, я хочу configure { object<T> -> ... }

чтобы часть конфигурации была у родителя

а ты мог делать свои сервисы

если тебе нужны разные сервисы

но с куском одинаковой конфигурации

Mikhail
20.02.2018
14:45:28
чтобы часть конфигурации была у родителя
Так зачем тебе наследование?

Ты ведь можешь нормально сделать композицию

И по сути, с помощью списка делаешь ее

Va
20.02.2018
14:46:09


Mikhail
20.02.2018
14:46:10
Только зачем то через наследование

Va
20.02.2018
14:46:49
да при чем тут композиция сервис занимается еще кучей других вещей, кроме конфигурации

Alexey
20.02.2018
14:47:10
Что за привычка делать god objects

Va
20.02.2018
14:47:30
сервис занимается ресурсами

конфигурация ресурсов — тоже задача сервиса

сразу наезжать на людей

Mikhail
20.02.2018
14:48:37


Тут очень условное

Ничего не понятно, мягко говоря

Как я понял, ты хочешь условную мапу-свич, типа если видишь обьект А, то вот тебе его обработчик, если обьект Б, то вот другой обработчик

Bogdan
20.02.2018
14:50:55
конфигурация ресурсов — тоже задача сервиса
у сервиса есть конфигуратор, который и делает конфигурация, это вроде декомпозициец называют. Ну я не до конца понял что ты хочешь

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