@KotlinLangRu

Страница 74 из 90
Nikita
23.07.2018
21:44:13
Логика проста, при двух условиях делается одинаковые действия, но одно из условий требует дополнительных действий

Хекс
23.07.2018
21:44:14
when { a, b -> { ... when a -> { .... } } }
чем не возможность?

Nikita
23.07.2018
21:44:37
чем не возможность?
Я так и сделал в итоге ток на if

Vladislav
23.07.2018
21:45:22
А как это будет работать?
выйдет на первом, т.к. у тебя из вен только 1 результат может вернуться. Тут наверное как с элвисом - проще ифом написать if (a||b) {do1} if (a) {do2} if (b) {do3}

Google
Хекс
23.07.2018
21:45:22
Я так и сделал в итоге ток на if
ну при одном дополнительном условии if выглядит уместным

да ну

каждое условие проверять

кто так делает

Хекс
23.07.2018
21:49:35
when { a, b -> { do1() if (a) do2() /*else*/ if (b) do3 () }

Vladislav
23.07.2018
21:50:15
when { a, b -> { do1() if (a) do2() /*else*/ if (b) do3 () }
ну ты же видишь что тут вен тупо лишний ))

Хекс
23.07.2018
21:50:35
ну ты же видишь что тут вен тупо лишний ))
я хз сколько там условий в задаче

я исходил из неизвестности вариантов

Vladislav
23.07.2018
21:50:55
да сколько бы не было ))

Google
Vladislav
23.07.2018
21:51:04
этот код равносилен { if(case1) {} if(case2) {} if(case3) {} if(caseN) {} }

Хекс
23.07.2018
21:51:17
а если ни а ни б

а если и а и б

а если а и ц

Vladislav
23.07.2018
21:51:49
в том то и дело что вен тебя тут только ограничивает т.к. надо следить за порядком _)

Хекс
23.07.2018
21:53:03
почему ограничивает. общий для всего код до вена, общий для группы условий в первом, внутри дополнительные условия. что не так?

а просто перечисление ифов даже без элсов заставляет по каждому пробегаться и дублировать код там где надо

Vladislav
23.07.2018
21:54:38
вот в этом вот _)

а если ни а ни б

а если и а и б

а если а и ц

Хекс
23.07.2018
21:55:48
ну, при множетсве комбинаций и разном поведении при разных комбинациях то конечно

а если можно выделить группы условий и быть уверенным что это не будет разрастаться в дерево венов, то достаточно двухуровневой проверки условий, то есть when + внутренний when или if

Orhan
24.07.2018
07:13:41
Норм практичный курс по Android

https://www.youtube.com/playlist?list=PLyVnb2byWwpl4ykCp1aDIH0gjVzMIxAtV

Tepex
24.07.2018
10:49:33
Добрый день! Подскажите - как вернуть значение из лямбды? Попробовал вот такой код, но он не компилируется (Unresolved reference: myLocalLabel): this.gmap!!.setOnMyLocationButtonClickListener(@myLocalLabel{ onClickMyLocation() return@myLocalLabel true }) В setOnMyLocationButtonClickListener должен передаваться интерфейс: interface GoogleMap.OnMyLocationButtonClickListener { fun onMyLocationButtonClick(): Boolean }

NewAge
24.07.2018
11:19:22
Tepex
24.07.2018
11:31:23
Добрый день! Подскажите опытные люди, как изящней написать это на Kotlin? private boolean empty; private List list; ... if(list == null || list.size() == 0) empty = true; else empty = false;

Google
Tepex
25.07.2018
09:55:40
List - как пример. Вместо него может быть любой другой nullable-объект

Dmytro
25.07.2018
10:04:13
Добрый день! Подскажите опытные люди, как изящней написать это на Kotlin? private boolean empty; private List list; ... if(list == null || list.size() == 0) empty = true; else empty = false;
Вроде ж есть isNullorEmpty() или можно написать функцию расширение, если сильно часто такое используешь

Tepex
25.07.2018
10:10:10
Ясно, спасибо! Kotlin только осваиваю — вот и «детские» вопросы. Написал как есть: if(list == null || list?.size() == 0) empty = true else empty = false

Dmytro
25.07.2018
10:11:11
эта функция расширение для CharSequence
Ну можно такую же свою написать)

Tepex
25.07.2018
10:25:38
И еще вопрос: некая функция fun myFun(context: Context) принимает в качестве аргумента NonNull значение (это Android). Я вызываю эту функцию и контекст получаю из какого-нибудь SDK-метода, который по сигнатуре может и null (хотя я 100% уверен, что не null). На что компилятор справедливо ругается: Type mismatch: inferred type is Context? but Context was expected Допустимо ли писать так: myFun(context!!) или это не айс?

Quantum Harmonizer
25.07.2018
10:26:07
вроде больше ничего не остаётся

Tepex
25.07.2018
10:34:43
Ясно, спасибо!

Челодой
26.07.2018
17:32:53
Всем привет. Есть вот такой метод. Суть в том что, мне надо сперва получить токен, а потом используя этот токен сделать запрос. Но как бы не пробовал, все равно сперва посылается запрос, а потом уже получаю токен. Как можно решить эту проблему? launch(UI) { try { var token = "" FirebaseInstanceId.getInstance().instanceId.addOnCompleteListener { result -> token = result.result.token } val result = withContext(DefaultDispatcher) { authInteractor.requestAccess(token) } when (result) { /* some stuff */} } catch (e: Exception) { /* handle exception*/ } }

Quantum Harmonizer
26.07.2018
17:35:47
придётся научиться пользоваться колбэками

Grushin
28.07.2018
17:24:39
с скажите, в андроиде же котлин компилируется как обычно? (в кишках)

как я понял вместо aapt орудует kapt. И это единственное отличие?

Quantum Harmonizer
28.07.2018
18:43:33
с скажите, в андроиде же котлин компилируется как обычно? (в кишках)
он компилируется задолго до попадания в Android. В такой же байт-код, как и Java. Для ~~мазохистов~~ любителей apt есть kapt, да.

Денис
31.07.2018
08:29:32
Добрый день. Есть задача отформитировать Float, так чтобы после запятой было два знака. profileMagicPoints = DecimalFormat("#########.##").format(userInfo.magicPoints) Но дело в том, что количество знаков до запятой заранее неизвестно. Я захардкодил 9 знаками, но мне это не нравится. Можно как-то красивее это сделать? Заранее спасибо.

Денис
31.07.2018
09:00:39
попробуйте "%.2f".format(userInfo.magicPoints)
спасибо большое. решил пролбему вот так вот:

Google
Денис
31.07.2018
09:00:40
val decimalFormat = DecimalFormat("#.##") decimalFormat.roundingMode = RoundingMode.CEILING profileMagicPoints = decimalFormat.format(userInfo.magicPoints)

Tantsura
31.07.2018
13:12:21
Привет всем, у меня слегка оффтопный вопрос повсей видимости. Стоит ли изучать котлин без знаний джавы с бэкграундом в джаваскрипте? Или все же лучше начать с джавы и потом плавно перейходить на котлин

Tepex
31.07.2018
13:17:33
Думаю, что можно и нужно (опыт Java > 15 лет)

Владислав
31.07.2018
13:18:20
:D

Страница 74 из 90