If statement 无冗余“如果”语句
我的代码如下If statement 无冗余“如果”语句,if-statement,kotlin,If Statement,Kotlin,我的代码如下 private fun validateInput(): Boolean { if (etReportRow1.text.toString() == "" || etReportRow2.text.toString() == "" || etReportRow3.text.toString() == "") return false else return true } 编译器告诉
private fun validateInput(): Boolean {
if (etReportRow1.text.toString() == ""
|| etReportRow2.text.toString() == ""
|| etReportRow3.text.toString() == "")
return false
else
return true
}
编译器告诉我
没有多余的“如果”语句。。。Ctrl+F1如果出现以下情况,则此检验报告
可以简化为单个语句的语句。例如:
如果foo{return true},则{return false}可以是
简化为返回foo
建议的代码不会进入循环吗?试试看
return !(etReportRow1.text.toString() == "" || etReportRow2.text.toString() == "" || etReportRow3.text.toString() == "")
试一试
由于布尔表达式的计算结果为布尔值,因此可以简单地返回表达式本身的结果,而不必显式返回true或false 您可以使用以下单表达式函数进一步简化:
private fun validateInput() = etReportRow1.text.toString() != "" &&
etReportRow2.text.toString() != "" &&
etReportRow3.text.toString() != ""
由于布尔表达式的计算结果为布尔值,因此可以简单地返回表达式本身的结果,而不必显式返回true或false 您可以使用以下单表达式函数进一步简化:
private fun validateInput() = etReportRow1.text.toString() != "" &&
etReportRow2.text.toString() != "" &&
etReportRow3.text.toString() != ""
表格中的所有状态:
if(condition){
return false
} else {
return true
}
可简化为:
return !condition
因此,在您的情况下,这将导致:
return !(etReportRow1.text.toString() == "" || etReportRow2.text.toString() == "" || etReportRow3.text.toString() == "")
或:
注意:isNotEmpty是一个扩展方法:
public inline fun CharSequence.isNotEmpty(): Boolean = length > 0
为了避免重复代码,还可以使用序列:
表格中的所有状态:
if(condition){
return false
} else {
return true
}
可简化为:
return !condition
因此,在您的情况下,这将导致:
return !(etReportRow1.text.toString() == "" || etReportRow2.text.toString() == "" || etReportRow3.text.toString() == "")
或:
注意:isNotEmpty是一个扩展方法:
public inline fun CharSequence.isNotEmpty(): Boolean = length > 0
为了避免重复代码,还可以使用序列:
我认为这应该奏效:
private fun validateInput() = !(etReportRow1.text.toString.isEmpty()
|| etReportRow2.text.toString().isEmpty()
|| etReportRow3.text.toString().isEmpty() )
我认为这应该奏效:
private fun validateInput() = !(etReportRow1.text.toString.isEmpty()
|| etReportRow2.text.toString().isEmpty()
|| etReportRow3.text.toString().isEmpty() )
更简洁的是:
public fun validateInput() = setOf(
etReportRow1, etReportRow2, etReportRow3
).none {
"${it.text}".isEmpty()
}
更简洁的是:
public fun validateInput() = setOf(
etReportRow1, etReportRow2, etReportRow3
).none {
"${it.text}".isEmpty()
}
你可以回来了!etReportRow1.text.toString==|| etReportRow2.text.toString==| | etReportRow3.text.toString==顺便说一句,避免对对象字符串使用==comparison@MauricePerry这是一个kotlin问题,它用==覆盖equals,因此这将起作用fine@MauricePerry如果我们不犯错误,我们就无法改进@利诺。。。我们不需要像stackoverflowu这样的网站,你可以直接返回!etReportRow1.text.toString==|| etReportRow2.text.toString==| | etReportRow3.text.toString==顺便说一句,避免对对象字符串使用==comparison@MauricePerry这是一个kotlin问题,它用==覆盖equals,因此这将起作用fine@MauricePerry如果我们不犯错误,我们就无法改进@利诺。。。我们不需要像stackoverflow这样的网站