Files
From_Kotlin_to_Kotlin-Multi…/Learning/深入Kotlin.md
T
2026-09-18 11:45:43 +08:00

2.5 KiB
Raw Blame History

深入 Kotlin

预计时间 3d

确保你已经了解所有的基础语法,这很重要。

更全面的 class 用法

更加详细的 class 构造函数与对象初始化

类初始化

在 Kotlin 的类定义中可以写 init {} 代码块,它发生在构造函数之后,作用是使用构造函数定义的成员变量值再做一些构造函数没有的操作,比如利用构造函数的参数再做一些细致的变量处理。

构造函数

构造函数有多种写法:

  1. 直接写在类名之后
class MyClass(
    val a: Int,
    private var b: String,
    c: Int // 这里的变量 c 仅用于成员初始化,随后被抛弃,不作为成员变量
) {
    val d = c * a
    // something else
}
class MyClass private constructor( // 非私有时,constructor 可省
    // ...
) {
    // something else
}
  1. 写在类定义之内
class MyClass {
    val d: Int
    constructor(
        val a: Int,
        private var b: String,
        c: Int
    ) {
        d = c * a
    }
    // something else
}
  1. 构造函数调用其他构造函数
class MyClass(
    var name: String?,
    val amount: Int
) {
    constructor(
        val amount: Int
    ) : this(null, amount)
    // something else
}

伴生对象

定义方法:

    companion object {}

它的使用和 object 完全一致,用于替代 Java 中的 static 修饰符。是一个非常方便的东西。

类继承细节

泛型类

特殊类函数

component 函数

重写 toString

重载运算符

委托

特殊函数

嵌套 lambda 与注解

泛型函数

infix 函数

扩展函数

概念与 lambda 变量类型

常用的扩展函数

apply
also
let

let 可以让一段代码只在对象非空时执行:

val name: String? = "Kotlin"

name?.let {
    println("长度是 ${it.length}")
}

如果 name 是 null,let 里面的代码不会执行。

use
run

suspend 函数

文件 IO

用 Gradle 加载依赖(外部库)

Kotlin 反射

定义一个特殊的变量/函数名

接下来可以看

目录

下一篇:Kotlin Springboot

更进一步:成为 Kotlin 超人

进入 KMP