在Java转Kotlin的过程中发现的Kotlin中的一些好用的函数,记录一下╰(*°▽°*)╯
1.filter函数
val list = mutableListOf<Int>().apply {
add(0)
add(1)
add(2)
add(3)
add(4)
add(5)
}
//用任意list调用filter可以遍历并筛选该list,并返回筛选后的结果
val screenList = list.filter {
it%2==0
}
Log.e("chy", "screenListSize: ${screenList.size}" )
PS:filter类型的函数还有filterNot,filterNotNull等.
2.repeat函数
//在Kotlin中可以用repeat函数来代替java中的for做循环操作(当然for在Kotlin中依然存在)
repeat(100){
Log.e("chy", "repeat: $it" )
}
3.方法默认参数值
/**
* 在调用setType时,x的值为必传值,y的值可传可不传
* (y:Int = 0 相当于是y的默认值为0)
* 这种写法相当于Java中的方法重载
*/
fun setType(x:Int,y:Int = 0){
}
4.inline关键字
/**
* 被inline修饰的函数被称为内联函数
* 内联函数在被调用时会直接将函数中代码复制到调用的地方
* 理论上这样可以在运行时减少调用栈,但是会大幅度的正价编译时间,使编译后代码体积膨胀
* 实际上当我们在入参不是函数的函数前加上inline时会报警告,并提示内联对性能的预期影响是微不足道的。内联最适用于参数为函数类型的函数
*/
inline fun myLog(block:(Int)->Unit){
}