错误:(15,1)Kotlin:A';返回';具有块体(';{…}';)的函数中需要的表达式
我在这段代码中得到一个错误:错误:(15,1)Kotlin:A';返回';具有块体(';{…}';)的函数中需要的表达式,kotlin,Kotlin,我在这段代码中得到一个错误: fun num(num:Int):Int { if (num > 0){ print(num % 10) return num / 10 } } //here an error 错误:(15,1)Kotlin:具有块体(“{…}”)的函数中需要一个“return”表达式 这意味着什么以及如何修复它?在函数体中,执行路径可能不包含return语句,因为唯一的return语句放在if(…){…}块中。如果条件不满
fun num(num:Int):Int {
if (num > 0){
print(num % 10)
return num / 10
}
} //here an error
错误:(15,1)Kotlin:具有块体(“{…}”)的函数中需要一个“return”表达式
这意味着什么以及如何修复它?在函数体中,执行路径可能不包含
return
语句,因为唯一的return
语句放在if(…){…}
块中。如果条件不满足,则不返回任何内容
具有声明值类型(fun num(num:Int):Int)的函数应始终返回该类型的值,并且当它具有块体时,应使用return
语句来完成该操作,其中一个语句应始终被访问
您可以通过在if
块后添加另一个return
语句来解决此问题:
fun num(num: Int): Int {
if (num > 0) {
print(num % 10)
return num / 10
}
return -1 // some default value
}
使用下面的函数
private fun validate(): Boolean {
return when {
TextUtils.isEmpty(binding.edtName.text) -> {
Toast.makeText(this, getString(R.string.please_enter_your_name), Toast.LENGTH_LONG).show()
false
}
TextUtils.isEmpty(binding.edtEmail.text) -> {
Toast.makeText(this, getString(R.string.please_enter_your_email), Toast.LENGTH_LONG).show()
false
}
else -> true
}
}
请将此文件格式化,使其清晰易读。谢谢。请同时阅读本指南:因为您需要在其他
条件的一半中返回一些内容。也就是说,如果您没有进入if
,也没有返回任何内容。不要忘记'if'是一个表达式,因此您可以使用返回if
,而不必在'if'中返回。这是一种后天养成的嗜好,特别是如果您已经编写Java代码很长时间了,但现在它是我的首选。然后可以将其转换为表达式体。