I am trying to return the boolean value from the function.
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
}
}
Error: The boolean literal does not conform to the expected type Unit.
I know unit is the default return type in kotlin. How will i change this to boolean.
Kotlin can only infer the returned type of a function when its a expression, so if your function has a body, you need to specify the returned type after the function 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
}
}
As glee8e mentioned, this could be done using an expression. This is how it'd be done.
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
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.