Kotlin三元运算符[重复]
Posted
技术标签:
【中文标题】Kotlin三元运算符[重复]【英文标题】:Kotlin ternary operator [duplicate] 【发布时间】:2019-07-14 07:05:46 【问题描述】:如何将以下代码从 Java 转换为 Kotlin?
Boolean mBoolean = false
view.setVisibility(mBoolean ? View.VISIBLE : View.GONE);
【问题讨论】:
android Studio 可以为您转换代码。如果您遇到的问题是三元表达式,那么 kotlin 中的等效构造是if else
。
也可以使用when
表达式
【参考方案1】:
val mBoolean = false
view.visibility = if(mBoolean) View.VISIBLE else View.GONE
但是我怀疑在这里将mBoolean
设置为不可变是否有意义,所以我会选择var mBoolean
,而不是val mBoolean
。
【讨论】:
var
将是正确的翻译,因为 mBoolean
在 Java 代码中不是 final
。
在 Kotlin 中使用 val
总是更好。例如,有一些功能,比如智能案例可以与 val
一起使用,而不是与 var
声明一起使用【参考方案2】:
您可以通过创建扩展函数来扩展view.visibility = if(mBoolean) View.VISIBLE else View.GONE
fun View.makeVisible(show:Boolean)
this.visibilility = if(show) View.VISIBLE else View.GONE
var mBolean = false
view.makeVisible(mBoolean)
【讨论】:
【参考方案3】:您也可以使用 when 运算符:
val mBoolean = false
view.visibility = when (mBoolean)
true -> View.VISIBLE
false -> View.GONE
【讨论】:
以上是关于Kotlin三元运算符[重复]的主要内容,如果未能解决你的问题,请参考以下文章