Как вернуть значение из функции в kotlin

Я пытаюсь вернуть логическое значение из функции.

fun validateDetails(jabberId:String, passwordText: String) { if(jabberId.isEmpty()){ jabber_id.requestFocus() jabber_id.error="Jabber id can't be null." return false }else if(jabberId.isBlank()){ jabber_id.requestFocus() jabber_id.error="Jabber id can't be blank." return false }else if (passwordText.isNotEmpty()){ password.requestFocus(); password.error="Password can't be null." return false } else{ return true } } 

Ошибка: логический литерал не соответствует ожидаемому типу Unit.

Я знаю, что unit – это возвращаемый по умолчанию тип в kotlin. Как я могу изменить это на boolean.

Kotlin может только вывести возвращаемый тип функции, когда ее выражение, поэтому, если ваша функция имеет тело, вам нужно указать возвращаемый тип после функции paramameters

 fun functionName(param: Type...): ReturnedType { //function body } fun validateDetails(jabberId:String, passwordText: String):Boolean { if(jabberId.isEmpty()){ jabber_id.requestFocus() jabber_id.error="Jabber id can't be null." return false }else if(jabberId.isBlank()){ jabber_id.requestFocus() jabber_id.error="Jabber id can't be blank." return false }else if (passwordText.isNotEmpty()){ password.requestFocus(); password.error="Password can't be null." return false } else{ return true } } 

Как упоминалось в glee8e, это можно сделать с помощью выражения. Вот как это будет сделано.

 fun validateDetails(jabberId:String, passwordText: String) = when { jabberId.isEmpty() -> { jabber_id.requestFocus() jabber_id.error="Jabber id can't be null." false } jabberId.isBlank() -> { jabber_id.requestFocus() jabber_id.error="Jabber id can't be blank." false } passwordText.isNotEmpty() -> { password.requestFocus(); password.error="Password can't be null." false } else -> true }