我有以下声明:
val visibility = if (itemView.img_playstore.visibility == View.VISIBLE) View.GONE else View.VISIBLE
Run Code Online (Sandbox Code Playgroud)
而另一个:
val visibility : Int = itemView.img_playstore.visibility == View.VISIBLE ? View.GONE : View.VISIBLE
Run Code Online (Sandbox Code Playgroud)
第一个是好的,但对于第二个,我收到以下消息:类型不匹配.必需的国际 找到布尔值.
这是什么原因?
答案很简单:Kotlin 没有三元运算符.你if/else从第一个片段开始可能是最好的选择,因为它是Kotlin中的一个表达式(除了Java之外).
val cond: Boolean = true
val visibility: Int = if (cond) 2 else 3
Run Code Online (Sandbox Code Playgroud)
也when可以使用:
val cond: Boolean = ...
val visibility: Int = when {
cond -> 2
else -> 3
}
Run Code Online (Sandbox Code Playgroud)
或者像这样:
val visibility: Int = when (cond) {
true -> 2
false -> 3
}
Run Code Online (Sandbox Code Playgroud)
有很多方法,但没有三元运算符......
| 归档时间: |
|
| 查看次数: |
1404 次 |
| 最近记录: |