简体   繁体   中英

How to return value from the function in kotlin

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM