Не хотел бы спорить с @yole, ведь он является автором идиом в Kotlin.
Но если вам действительно нравится что-то вроде JavaScript, вы можете сделать что-то вроде этого:
dataSnapshot.value.let {
if (it == null) {
::startSync
}
else {
startSync()
null
}
}?.let {
aThing.putAll(defaultConfig)
dbRef.setValue(botState) { _, _ -> it() }
}
Но, как вы можете видеть, он не короче вашей версии и на самом деле гораздо более запутанный.
Иногда, я полагаю, правильный путь - это правильный путь.
Другой способдолжен использовать with
и ссылку на метод:
with(::startSync) {
if (dataSnapshot.value == null) {
aThing.putAll(defaultConfig)
dbRef.setValue(botState) { _, _ -> this() }
}
else {
this()
}
}