基础语法

open关键字

Kotlin 的类,默认是不允许继承的,除非这个类明确被 open 关键字修饰了。另外,对于被 open 修饰的普通类,它内部的方法和属性,默认也是不允许重写的,除非它们也被 open 修饰了

inner关键字

默认情况下,kotlin中的嵌套类是静态内部类,不会持有外部类饮用。inner修饰时才能引用外部成员,才可能出现内存泄漏,所以加上inner之后就要注意风险了

sealed

1
2
3
4
5
6
println(Human.MAN == Human.MAN)
println(Human.MAN === Human.MAN)

输出
true
true

加强版的枚举。每一个枚举的值,它在内存当中始终都是同一个对象引用。如果想要枚举的值拥有不一样的对象引用,就需要密封类

Read More

协程

协程Coroutine可以理解成轻量的线程,运行在线程中的非阻塞的Task;协程不会与特定的线程绑定,它可以在不同的线程之间灵活切换。

相关API:

  • CoroutineContext

Read More

Android KTX

Android KTX 是包含在 Android Jetpack 及其他 Android 库中的一组 Kotlin 扩展程序。它依托 Kotlin 的扩展能力,为 Android 原有 API 增加新的:扩展函数、扩展属性、高阶函数、命名参数、参数默认值、协程支持

AndroidX模块

Core KTX

1
2
3
4
dependencies {
implementation "androidx.core:core-ktx:1.13.1"
}

包含以下子模块

— androidx.core.animation
— androidx.core.content
— androidx.core.content.res
— androidx.core.database
— androidx.core.database.sqlite
— androidx.core.graphics
— androidx.core.graphics.drawable
— androidx.core.location
— androidx.core.net
— androidx.core.os
— androidx.core.text
— androidx.core.transition
— androidx.core.util
— androidx.core.view
— androidx.core.widget

Read More