Kotlin条件表达式与Elvis操作符?:
【摘要】 条件表达式
如果Kotlin的条件语句(if语句)中只是做赋值操作而已,那么IDE会提示: Return should be lifted out of 'if' 其实就是建议你用条件表达式。 如果下面这个方法:
fun maxOf(a: Int, b: Int): Int {
if (a > b) {
return a
} else {
retu...
条件表达式
如果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
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
因为我们的条件语句中只是做赋值操作,因此建议写成这样:
fun maxOf(a: Int, b: Int): Int { return if (a > b) { a } else { b } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
写成下面的条件表达式:
fun maxOf(a: Int, b: Int) = if (a > b) a else b
- 1
再举个例子:
如果有一个这样的例子:
if (holder.mCB.isChecked) {
selectedPosition = position
} else { selectedPosition = -1
}
- 1
- 2
- 3
- 4
- 5
如果条件语句块里只是赋值的话,Kotlin建议你用条件表达式(就像Java的三元运算运):
selectedPosition = if (holder.mCB.isChecked) { position } else { -1 }
- 1
- 2
- 3
- 4
- 5
Elvis操作符?:
条件表达式更简洁的表达就是用Elivs操作符,如条件表达式:
如果b不为空,则获取它的长度,否则返回-1。
val l: Int = if (b != null) b.length else -1
- 1
转换成Elvis表达式,则更简洁:
val l = b?.length ?: -1
- 1
上述第一个问号,如果b为空,就不会执行后面获取长度的操作,返回默认值-1。
文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_40763897/article/details/107896789
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)