Kotlin

107 阅读1分钟

记录

日期说明
2023/1/2首次创建

总纲

关于Kotlin的一些概念

函数式api

  • T.let{}
    • it
    • 把当前调用的对象当作参数传递给lambda
    • 最后一行代码作为返回值
  • T.also{}
    • it
    • 把当前调用的对象当作参数传递到lambda
    • 返回的是当前调用的对象本身
  • with(T,{})
    • this
    • 两个参数,第一个为任意对象,第二个为lambda
    • 最后一行代码作为返回值
  • T.run{}
    • this
    • 把当前调用的对象当作参数传递到lambda
    • 最后一行代码作为返回值
  • T.apply{}
    • this
    • 把当前调用的对象当作参数传递到lambda
    • 返回的是当前调用的对象本身

静态

  • companion object伴生类
  • object单例类
  • @jvmStatic注解方法
    • 只能注解伴生类或单例类的方法
    • 定义顶层方法
  • 顶层方法:指不定义在任何类中的方法

集合

  • 可变
    • listOf
    • setOf
    • mapOf: mapOf("a" to 1, "b" to 2) ?
  • 不可变
    • mutableListOf
    • mutableSetOf
    • mutableMapOf
  • 函数式api
    • 最大:maxOf
    • 映射:map
    • 过滤:filter
    • ...

延迟初始化

  • lateinit
    • 修饰var
    • 可以用::XXX.isInitialized 判断是否初始化
    • 事前必须确保已经初始化
  • lazy:使用时才会初始化

密封类

  • sealed class

for

  • 0..10
  • 0 until 10
  • 10 downTo 0
  • 0..10 step 2

单例

  • object修饰类

lambda