本文主要是介绍Kotlin 控制流和集合过滤操作符,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、if else
在 Kotlin 中, if 是一个表达式,即它会返回一个值。 因此就不需要三元运算符(条件 ? 然
后 : 否则),因为普通的 if 就能胜任这个角色。
eg. 有一个int值是a,一个int值是b,求他们的比较大的那个数
java
int a = 1, b = 3;
Log.e("a和b的最大值是", a > b ? a + "" : b + "");
kotlin
val a:Int=1val b:Int=3val max = if (a > b) a else bprint("a和b里面最大的是"+max)
二、When 表达式
when 将它的参数和所有的分支条件顺序比较,直到某个分支满足条件。 when 既可以被当
做表达式使用也可以被当做语句使用。如果它被当做表达式, 符合条件的分支的值就是整个
表达式的值,如果当做语句使用, 则忽略个别分支的值。(像 if 一样,每一个分支可以是
一个代码块,它的值是块中最后的表达式的值。)
如果其他分支都不满足条件将会求值 else 分支。 如果 when 作为一个表达式使用,则必须
有 else 分支, 除非编译器能够检测出所有的可能情况都已经覆盖了。
eg. 实例demo里面的适配器代码:
when (dataItem.type) {"Android" -> holder?.ivType?.setImageResource(R.mipmap.android_icon)"iOS" -> holder?.ivType?.setImageResource(R.mipmap.ios_icon)"前端" -> holder?.ivType?.setImageResource(R.mipmap.js_icon)"拓展资源" -> holder?.ivType?.setImageResource(R.mipmap.other_icon)else -> holder?.ivType?.setImageResource(R.mipmap.android_icon)}
三、For 循环
for 循环可以对任何提供迭代器(iterator)的对象进行遍历,语法如下:
for (item in collection) print(item)
四、kotlin集合过滤操作符
过滤操作符:
- drop():从第一项开始去除前n个元素,并返回剩余的元素列表。
- dropWhile{}:根据给定函数从第一项开始去掉指定元素,直到不满足条件为止的前面的元素,并返回剩余元素列表。
- dropLastWhile{}:根据给定函数从最后一项开始去掉指定元素,直到不满足条件为止的后面的元素,并返回剩余元素的列表。
- filter{}:过滤出所有符合给定函数条件的元素。
- filterNot{}:过滤所有不符合给定函数条件的元素。
- filterNotNull():过滤所有元素中不是null的元素。
- slice():过滤一个list中指定index的元素。
- take():返回从第一个开始的n个元素。
- takeLast():返回从最后一个开始的n个元素。
- takeWhile{}:返回从第一个开始符合给定函数条件的元素,直到不符合条件为止。
- takeLastWhile{}:返回从最后一个开始符合给定函数条件的元素,直到不符合条件为止。
这篇关于Kotlin 控制流和集合过滤操作符的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!