首页 文章

如何从kotlin中的函数返回值

提问于
浏览
3

我试图从函数返回布尔值 .

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是kotlin中的默认返回类型 . 我将如何将其更改为布尔值 .

1 回答

  • 8

    Kotlin只能在表达式时推断出函数的返回类型,所以如果你的函数有一个体,你需要在函数参数后指定返回的类型

    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  
    }
    

相关问题