Возьмём всё тот-же пример с контекстом во фрагменте:
context?.let { /*Do some stuff*/ } ?: run { /*handle this shit*/ }
vs
val context = context
if(context != null) {
doStuff()
} else {
doAnotherStuff()
}
А ещё лучше вынести работу с контекстом в нормальную функцию аля
Context.doContextStuff()
и будет самый правильный и красивый вариант
context?.doContextStuff() ?: doSmth()
но вы приведите мне хоть один случай, когда надо так делать?