如果我有以下条件,则如何将其转换为时间?
if (something.isNotEmpty()) {
doSomething1()
if (something.contains(condition1)) {
doSomething2()
} else if (something.contains(condition2)) {
doSomething3()
}
} else {
doSomething4()
}
// when condition something like
when(something) {
... -> ...
}
答案 0 :(得分:1)
您不需要嵌套when
语句。您可以;
when{
something.isNotEmpty() -> {
doSomething1()
if (something.contains(condition1)){
doSomething2()
}
else if(something.contains(condition2)) {
doSomething3()
}
}
else -> doSomething4()
}
答案 1 :(得分:1)
您可能无法在一整个when
中完成整个逻辑,我建议不要将难以阅读的内容嵌套,而应使用更扁平的方法:
if (!something.isNotEmpty()) { // or something.isEmpty()
doSomething4()
return
}
doSomething1()
when {
something.contains(condition1) -> doSomething2()
something.contains(condition2) -> doSomething3()
}
答案 2 :(得分:0)
when {
something.isNotEmpty() -> {
doSomething1()
when {
something.contains(condition1) -> doSomething2()
something.contains(condition2) -> doSomething3()
}
}
else -> doSomething4()
}
答案 3 :(得分:0)
尽管有其他答案,一种更好的方法是将if
条件置于when
条件中,以保持原样的逻辑。
代码如下:
when(something.isNotEmpty) {
true -> {
doSomething1()
when {
something.contains(condition1) -> doSomething2()
something.contains(condition2) -> doSomething3()
}
}
false -> doSomething4()
}