kotlin几个基本操作符的简介:
1.kotlin 常用高阶函数
1.1 TODO() 函数抛出异常测试错误的函数 TODO("测试TODO函数,是否显示抛出错误")
1.2 run() 函数 a.独立执行代码块 b.执行根据不同条件得到不同结果的时候使用可以结合when使用 run{ code }
1.3 T.run() 函数 可以使用当前对象的上下文 T为泛型对象
1.4 with() 函数 和T.run基本类似区别在于with为正常高阶函数 run为扩展高阶函数且 with函数指定了返回值(可看源码) with(str){ code }
1.5 T.apply() 函数 执行完lanbda表达式内容后会返回自身,因此还能继续后续的操作 T.apply{}.apply{}.apply{}
1.6 T.also() 函数 调用自身返回自身对象 "kotlin".also{println("结果:${it.plus("-java")}")} ----> kotlin-java
1.7 T.let() 函数 T ?.let{ } a.规避空指针; b. 对本身进行操作,这是上述几个实现不了的"kotlin".let{it.reversed()}.let{it.plus("-java")}.let {println("新的字符串:$it"}
1.8 T.takeIf() 函数 传入希望的条件如果符合这返回自身,否则返回null "str".takeIf{ it.startWith("ko")}
1.9 T.takeUnless 函数和takeIf 用法一致作用相反
1.10 repeat(count){ code } 函数根据传入的次数重复执行code count为5 即会执行5次
1.11 lazy(){} 函数 用于延迟加载 变量 by lazy{ 变量初始化值 }
2.kotlin基础知识点
2.1 enum class color(val r: Int,val g: Int,val b: Int){
RED(255,0,0),ORANGE(255, 165, 0), BLUE(0, 0, 255);
fun rgb() = (r * 256 + g) * 256 + b
}
此处是kotlin唯一必须使用 ; 的地方 枚举类中定义任何方法就要使用 ; 将枚举常量列表和方法分开
2.2 when结构中可以使用任意对象,可以是有返回值的表达式或者函数
3.基本操作符
3.1 ? 表示对象可空 b?.length 未? 而直接声明的变量不可赋null//如果 b非空,就返回 b.length ,否则返回 null,这个表达式的类型是 Int?
3.2 ?. 安全调用运算符不为空进行操作,反之返回null
3.3 ?: 类似java里的三元运算符 左侧为空则返回右侧,反之返回左侧 又称elvis操作符
3.4 !! 不为空则进行操作,反之抛出异常
3.5 ==与=== 前者判断值是否相等 后者判断值和引用是否都相等
3.6 .. until in !in ..表示x到y闭区间 until表示前闭后开 in表示在区间 !in 表示不在区间
3.7 downTo() 倒序遍历 for (i in 4 downTo 1){print(i) } //倒叙遍历
3.8 step() 步进 (i in 4 downTo 1 step 2) print(i) // prints "42"
3.9 :: 得到类的class对象 startActivity(Intent(this@KotlinActivity, MainActivity::class.java))
3.10 @ (1) 限制this类型 如上 (2)标签 暂未理解透彻
3.11 as? 转换类型 当使用as转换类型的时候可能遇到异常, as? 如果转换错误就返回null了
3.12 is 类型判断符,无需显示转换后再判断,直接进行判断即可
3.13 三个双引号多行文本保留原本格式
3.14 $ 模板表达式,会求值并把结果包含到字符串中 "${g+h}" "$value" "${'$'}" 最后一个是将$符号本身包含到字符串中
3.15 let操作符 配合?. 一起用 ?.let{ it元素不为空 }
3.16 lateinit 延迟初始化var修饰的变量 常用于延迟初始化非空变量一遍后续使用,避免每次引用变量都需判空