Size: a a a

Kotlin Community

2020 December 12

A

Andrew Momotov in Kotlin Community
Спасибо
источник
2020 December 13

R

Roman in Kotlin Community
Здравствуйте! Я новичок, пока занимаюсь по Head First Kotlin. Прилагаю фото из упражнения, не могу понять как if определяет false и вызывает функцию fly(). Буду очень признателен за помощь
источник

KZ

Konstantin Zolotov in Kotlin Community
Roman
Здравствуйте! Я новичок, пока занимаюсь по Head First Kotlin. Прилагаю фото из упражнения, не могу понять как if определяет false и вызывает функцию fly(). Буду очень признателен за помощь
Скорее всего, вам в @kotlin_start
Но вопрос, наверное, стоит переформулировать, не очень понятно, что вы хотите узнать, как оно под капотом работает в байткоде или что другое.
источник

R

Roman in Kotlin Community
Konstantin Zolotov
Скорее всего, вам в @kotlin_start
Но вопрос, наверное, стоит переформулировать, не очень понятно, что вы хотите узнать, как оно под капотом работает в байткоде или что другое.
Спасибо большое! Добро.
источник

с#

саша сок #KotlinGang... in Kotlin Community
источник

D

Denys in Kotlin Community
Roman
Здравствуйте! Я новичок, пока занимаюсь по Head First Kotlin. Прилагаю фото из упражнения, не могу понять как if определяет false и вызывает функцию fly(). Буду очень признателен за помощь
when - это выражение, каждая его ветка возвращает какой-то результат (вы его выше в y записываете)
источник

R

Roman in Kotlin Community
Denys
when - это выражение, каждая его ветка возвращает какой-то результат (вы его выше в y записываете)
@dector9 здравствуйте! Спасибо большое за помощь.
1.Тоесть получается этот разультат 3 раза в У записывается?
2. Просто IF выражение ниже не имеет условия, что "если У равно false ", то функция не вызывается. Вот здесь я и запутался.
источник

D

Denys in Kotlin Community
Roman
@dector9 здравствуйте! Спасибо большое за помощь.
1.Тоесть получается этот разультат 3 раза в У записывается?
2. Просто IF выражение ниже не имеет условия, что "если У равно false ", то функция не вызывается. Вот здесь я и запутался.
Предлагаю продолжить в @kotlin_start
(Ответил там)
источник

R

Roman in Kotlin Community
Denys
Предлагаю продолжить в @kotlin_start
(Ответил там)
Спасибо большое!
источник

AO

Alex Osinniy in Kotlin Community
Roman
Здравствуйте! Я новичок, пока занимаюсь по Head First Kotlin. Прилагаю фото из упражнения, не могу понять как if определяет false и вызывает функцию fly(). Буду очень признателен за помощь
Предлагаю больше не делать фото экрана
источник

A

Affected in Kotlin Community
Добрый день,
подскажите пожалуйста по корректному использованию длинных chain цепочек в коллекциях и использовании асинх. функций,

есть след код:

clientPolicies.
           .filter { policy -> isProductAvailable(policy.productId, availableProducts) }
           .filter { policy -> policy.isActive() || isPayoutAvailable(policy) }
           .map { policy -> async { getPolicyData(policy.id) } }
           .awaitAll()
           .groupBy { policyData -> policyData.currency }
           .map { (currency, policiesData) ->
               convertToPortfolioBalanceItem(
                       currency = currency,
                       policiesData = policiesData
               )
           }
//getPolicyData и isPayoutAvailable - suspend функции

В данном коде происходит цепочка вызовов в Collection (>2), что считается не самым хорошим решением. так как для каждого промежуточного этапа создается новая коллекция. Поидее рекомендуют использовать Sequence в таких ситуациях.
Но также присутствует асинх. операции, а Sequence не работает с async, требует Coroutine Body для вызова.

Почитал, что лучшим аналогом Sequence для асинх мира является Flow, но как я с ним не пробовал - получается синхронное выполнение, да и код в разы хуже читается. К тому же для него нет groupBy. Конечно можно его добавить, но сложность кода возрастает.

Как в данном случае лучше всего обыграть ситуацию? Все таки писать через флоу (скорей всего я его криво написал и из за этого потерял асинхронность, но код мне кажется все равно будет менее читабелен)? Или есть вариант обыграть это через Sequence, не потеря асинхронность?
источник

QH

Quantum Harmonizer in Kotlin Community
Affected
Добрый день,
подскажите пожалуйста по корректному использованию длинных chain цепочек в коллекциях и использовании асинх. функций,

есть след код:

clientPolicies.
           .filter { policy -> isProductAvailable(policy.productId, availableProducts) }
           .filter { policy -> policy.isActive() || isPayoutAvailable(policy) }
           .map { policy -> async { getPolicyData(policy.id) } }
           .awaitAll()
           .groupBy { policyData -> policyData.currency }
           .map { (currency, policiesData) ->
               convertToPortfolioBalanceItem(
                       currency = currency,
                       policiesData = policiesData
               )
           }
//getPolicyData и isPayoutAvailable - suspend функции

В данном коде происходит цепочка вызовов в Collection (>2), что считается не самым хорошим решением. так как для каждого промежуточного этапа создается новая коллекция. Поидее рекомендуют использовать Sequence в таких ситуациях.
Но также присутствует асинх. операции, а Sequence не работает с async, требует Coroutine Body для вызова.

Почитал, что лучшим аналогом Sequence для асинх мира является Flow, но как я с ним не пробовал - получается синхронное выполнение, да и код в разы хуже читается. К тому же для него нет groupBy. Конечно можно его добавить, но сложность кода возрастает.

Как в данном случае лучше всего обыграть ситуацию? Все таки писать через флоу (скорей всего я его криво написал и из за этого потерял асинхронность, но код мне кажется все равно будет менее читабелен)? Или есть вариант обыграть это через Sequence, не потеря асинхронность?
filter + filter + map можно заменить единственным mapNotNull
источник

A

Affected in Kotlin Community
да, звучит уже хорошо, думал объединять 2 фильтра в 1 (хотя читаемость ухудшится как по мне), но не подумал, что можно еще объединить и с map, спасибо
источник

@

@vffuunnyy in Kotlin Community
Хм, добрый вечер, никто случаем не знает что за приколы у CIO в Ktor с проксями?
источник

OY

Oleg Yukhnevich in Kotlin Community
@vffuunnyy
Хм, добрый вечер, никто случаем не знает что за приколы у CIO в Ktor с проксями?
Я не в курсе, но просто замечу, что cio эксперементальный ещё
И поэтому советуют обычно использовать другие движки
источник

@

@vffuunnyy in Kotlin Community
Oleg Yukhnevich
Я не в курсе, но просто замечу, что cio эксперементальный ещё
И поэтому советуют обычно использовать другие движки
Они жирноватые и нужно хранить клиента, а то он год инициализируется 😅
источник

D

Denys in Kotlin Community
@vffuunnyy
Хм, добрый вечер, никто случаем не знает что за приколы у CIO в Ktor с проксями?
А что там?
источник

@

@vffuunnyy in Kotlin Community
Denys
А что там?
А они не работают🤷‍♂
источник

Д

Дмитрий in Kotlin Community
Всем привет. Использую StateFlow как источник событий класса. Возможно ли (и если да, то как) тестировать StateFlow под runBlockingTest? Пробовал альтернативный вариант - выносить StateFlow в отдельный класс-эмитор и передавать его в конструктор тестируемого класса, что бы в тестах была возможность моделировать поведение StateFlow, передавая в конструктор пустышку. Но, в дальнейшем, для тест кейсов приходится сильно расширять передаваемый класс-эмитор. Так же, для тестирования, советуют использовать Tornado, но хотелось бы этого избежать.
источник

OY

Oleg Yukhnevich in Kotlin Community
@vffuunnyy
А они не работают🤷‍♂
Да там сейчас вообще очень сложно
В плане, не понятно, на каком движке что работает, а что не работает :(
Без доки не разберёшься :)
источник