Size: a a a

StartAndroid Ru Kotlin

2020 February 11

EA

Efim Arisov in StartAndroid Ru Kotlin
The The
ну типа у всех так или нет
Invalidate Cache & Restart в помощь тебе
источник

EA

Efim Arisov in StartAndroid Ru Kotlin
The The
ну типа у всех так или нет
Покажи манифест?
источник
2020 February 12

y

yush in StartAndroid Ru Kotlin
Room делает просто 2 селекта при отношении 1:1?
источник

АХ

Аль Ханафи in StartAndroid Ru Kotlin
Всем ку, ребят как Вам язык Flutter (Durt)? кто нибудь сталкивался?
источник

SH

Sergey Hottabych in StartAndroid Ru Kotlin
Интересны реальные примеры использования let/apply/with/also/run
Табличку я видел. А вот в реальном коде под Андроид где какая функция может пригодиться?
источник

SU

Slavik Urdzik in StartAndroid Ru Kotlin
источник

☠🇷

☠️ hex 🇷🇺🐍... in StartAndroid Ru Kotlin
nullableString?.let {
   tvText.text = it
}
источник

☠🇷

☠️ hex 🇷🇺🐍... in StartAndroid Ru Kotlin
with(rvRecycler) {
   setHasFixedSize(false)
   layout manager = LinearLayoutManager(this
   //adapter = blablabla ...
}
источник

V

Vitali in StartAndroid Ru Kotlin
/
источник

SH

Sergey Hottabych in StartAndroid Ru Kotlin
☠️ hex 🇷🇺🐍
nullableString?.let {
   tvText.text = it
}
Я правильно понимаю, что это равносильно записи:
if (nullableString != null) tvText.text = nullableString

произойдет смарт-каст и nullableString конвертнется в not-nullable
источник

SH

Sergey Hottabych in StartAndroid Ru Kotlin
☠️ hex 🇷🇺🐍
with(rvRecycler) {
   setHasFixedSize(false)
   layout manager = LinearLayoutManager(this
   //adapter = blablabla ...
}
apply и with, по сути, тоже взаимозаменяемы?
Можно написать with (rvRecycler), а можно rvRecycler.apply {}
Или есть какие-то ситуации, когда только одна из функций подойдет?
источник

☠🇷

☠️ hex 🇷🇺🐍... in StartAndroid Ru Kotlin
Sergey Hottabych
Я правильно понимаю, что это равносильно записи:
if (nullableString != null) tvText.text = nullableString

произойдет смарт-каст и nullableString конвертнется в not-nullable
Да
источник

☠🇷

☠️ hex 🇷🇺🐍... in StartAndroid Ru Kotlin
Sergey Hottabych
apply и with, по сути, тоже взаимозаменяемы?
Можно написать with (rvRecycler), а можно rvRecycler.apply {}
Или есть какие-то ситуации, когда только одна из функций подойдет?
Да
источник

☠🇷

☠️ hex 🇷🇺🐍... in StartAndroid Ru Kotlin
Sergey Hottabych
Я правильно понимаю, что это равносильно записи:
if (nullableString != null) tvText.text = nullableString

произойдет смарт-каст и nullableString конвертнется в not-nullable
Только let тяжелее
источник

☠🇷

☠️ hex 🇷🇺🐍... in StartAndroid Ru Kotlin
Он по моим наблюдениям создаёт NotNullable копию
источник

☠🇷

☠️ hex 🇷🇺🐍... in StartAndroid Ru Kotlin
И иногда это выходит боком, если в блоке много действий
источник

AK

Alexey Khusainov in StartAndroid Ru Kotlin
Sergey Hottabych
Я правильно понимаю, что это равносильно записи:
if (nullableString != null) tvText.text = nullableString

произойдет смарт-каст и nullableString конвертнется в not-nullable
В общем случае, если приложение многопоточное, то это не верно и работать let и проверка будут по разному. Возможно переключение контекста между проверкой и обращением к переменной, и если она нелокальная, другой поток может выставить ее в null. Впрочем, и смарт-каст тогда не пройдет.
источник

SH

Sergey Hottabych in StartAndroid Ru Kotlin
Насчет run.
run-блок — это просто область видимости. Типа как в C# можно поставить в теле метода фигурные скобки, и это будет локальная область видимости.
А вот run-расширение я не понимаю. Как понять "над переменной выполнить run"
источник

IS

Ilya Shikakov in StartAndroid Ru Kotlin
https://proandroiddev.com/kotlin-scope-functions-made-simple-c59b97a04ca2
Вот хорошая статья по теме scope функций, если с английским норм
источник

SH

Sergey Hottabych in StartAndroid Ru Kotlin
Спасибо, почитаю
источник