
书: https://pan.baidu.com/s/1hMg-9fMkkzntAfHoLymQMA?pwd=2tx9
笔记如下:
- Kotlin简介:Kotlin是一种现代、简洁、安全的静态类型编程语言,完全兼容Java。
- 空安全:Kotlin通过可空(
?
)和非空类型(如String
vsString?
)减少空指针异常。 - 函数定义:使用
fun
关键字,如fun greet(name: String): String { return "Hello, $name!" }
。 - 扩展函数:可以为现有类添加新方法,如
fun String.addExclamation() = "$this!"
。 - 数据类:
data class
自动生成equals()
、hashCode()
和toString()
,如data class User(val name: String, val age: Int)
。 - Lambda表达式:简化函数式编程,如
list.filter { it > 0 }.map { it * 2 }
。 - 协程:轻量级线程,用于异步编程,如
launch { delay(1000); println("Done") }
。 - 集合操作:丰富的API如
map
、filter
、groupBy
,支持链式调用。 - 默认参数与命名参数:函数参数可设默认值,调用时可指定参数名,如
fun connect(timeout: Int = 1000)
。 - 对象表达式与伴生对象:
object
关键字实现单例,companion object
替代Java静态成员。 - 密封类:
sealed class
限制继承层次,常用于状态管理,如sealed class Result
。 - 作用域函数:
let
、apply
、run
、with
、also
简化对象操作,如user?.let { println(it.name) }
。 - 类型推断:变量类型可省略,如
val message = "Hello"
(自动推断为String
)。 - 字符串模板:支持变量嵌入,如
"Value: $value"
或表达式"Sum: ${a + b}"
。 - 解构声明:分解对象属性,如
val (name, age) = user
。 - 内联函数:
inline
减少高阶函数运行时开销,如inline fun measureTime(block: () -> Unit)
。 - 委托属性:通过
by
实现属性延迟加载(lazy
)、观察(observable
)等模式。 - 与Java互操作:Kotlin可无缝调用Java代码,反之亦然,支持
@JvmStatic
等注解。 - Android开发:Kotlin成为Android官方语言,简化视图绑定(
findViewById
替代)、协程处理异步任务。 - 性能优化:Kotlin编译为高效字节码,协程减少线程开销,内联函数提升运行效率。