本文会介绍 部分 标准函数 和 静态方法 的使用,算是kotlin的一些高级小技巧,走起来~~
一、let、with、run、apply
let
它主要是结合 ’ ?. ’ 进行判空的辅助,
例如:
var userBean:UserBean ?= null
userBean?.let {
//如果userBean为空,let空间的代码就不会执行了
println(it.name)
}
with
它主要是对代码 进行一些精简的作用,比如我们要使用一个对象的方法很多次,就可以使用 with。
有两个参数 :1 是要调用的对象 , 2 lambda 表达式
lambda 的最后一行 作为 返回值。
val ulist = mutableListOf<String>("a", "b","c","d",)
var str= with(ulist){
add("e") //之前添加需要 ulist.add()
add("f")
add("g")
clear()
"clear all"
}
run
功能和 with 基本一样,就是在编码的直觉上更符合,之前的(Java)习惯。
var b= ulistOf.run{
add("e")
add("f")
add("g")
clear()
"clear all"
}
apply
与 with 的使用方式基本一样,不同的是 它没有返回值,而是将自身做为返回值。
var c= ulistOf.apply{
add("e")
add("f")
add("g")
clear()
"clear all" // 这里的 "clear all " 字符串就没有什么用了
}
二、静态方法的使用
在Kotlin中,弱化了静态方法的概念,使用 ‘ 静态方法 ’ 有两种方式:
(1)使用 object 修饰一个 类(如 Util ),将这个类变成 ‘ 单例的 ’,就可以使用 Util.f1() 来调用了
object Util {
fun f1(){
}
fun f2(){
}
}
(2)上边这样 Utli 的所有方法 f1 f2 都变成类似静态方法了,如果 只想某一个方法变成 静态方法
要使用 companion object ( 伴生对象 ) 了
class Util {
fun f1(){
}
companion object{
fun f2(){
}
}
}
上面其实是 kotlin 提供的 一种 神似静态方法 的调用方式 (日常开发需求已经够用了)
如果想使用 想JAVA一样的 “真静态方法” 请看下面 两种方式
1 加注解 @JvmStatic
companion object{
@JvmStatic
fun f2(){
}
}
2 顶层函数
新建 kt 文件 Hello.kt
fun funStatic(){
println("我是顶层静态方法")
}
如何使用
//kotlin 直接使用
funStatic() //我是顶层静态方法
//java 中
HelloKt.funStatic();