网站怎么做兼容测试/互联网推广方式有哪些
条件表达式
如果Kotlin的条件语句(if语句)中只是做赋值操作而已,那么IDE会提示:
Return should be lifted out of 'if'
其实就是建议你用条件表达式。
如果下面这个方法:
fun maxOf(a: Int, b: Int): Int {if (a > b) {return a} else {return b}
}
因为我们的条件语句中只是做赋值操作,因此建议写成这样:
fun maxOf(a: Int, b: Int): Int {return if (a > b) {a} else {b}}
写成下面的条件表达式:
fun maxOf(a: Int, b: Int) = if (a > b) a else b
再举个例子:
如果有一个这样的例子:
if (holder.mCB.isChecked) {selectedPosition = position} else {selectedPosition = -1}
如果条件语句块里只是赋值的话,Kotlin建议你用条件表达式(就像Java的三元运算运):
selectedPosition = if (holder.mCB.isChecked) {position} else {-1}
Elvis操作符?:
条件表达式更简洁的表达就是用Elivs操作符,如条件表达式:
如果b不为空,则获取它的长度,否则返回-1。
val l: Int = if (b != null) b.length else -1
转换成Elvis表达式,则更简洁:
val l = b?.length ?: -1
上述第一个问号,如果b为空,就不会执行后面获取长度的操作,返回默认值-1。