我可以用Java编写
int i = 10;
String s = i==10 ? "Ten" : "Empty";
Run Code Online (Sandbox Code Playgroud)
即使我可以在方法参数中传递它。
callSomeMethod(i==10 ? "Ten" : "Empty");
Run Code Online (Sandbox Code Playgroud)
如何将其转换为Kotlin?在Kotlin中编写相同内容时,Lint显示错误。
代替
String s = i==10 ? "Ten" : "Empty";
Run Code Online (Sandbox Code Playgroud)
从技术上讲你可以做
val s = if(i == 10) "Ten" else "Empty"
val s = when {
i == 10 -> "Ten"
else -> "Empty"
}
val s = i.takeIf { it == 10 }?.let { "Ten" } ?: "Empty"
// not really recommended, just writing code at this point
val s = choose("Ten", "Empty") { i == 10 }
inline fun <T> choose(valueIfTrue: T, valueIfFalse: T, predicate: () -> Boolean) =
if(predicate()) valueIfTrue else valueIfFalse
Run Code Online (Sandbox Code Playgroud)
callSomeMethod( if (i==10) "Ten" else "Empty")
Run Code Online (Sandbox Code Playgroud)
关于三元运算符的讨论:https : //discuss.kotlinlang.org/t/ternary-operator/2116/3
| 归档时间: |
|
| 查看次数: |
2567 次 |
| 最近记录: |