Kotlin 基础语法
Kotlin 基础语法(2025年中文讲解)
Kotlin 是一种现代、静态类型编程语言,简洁、安全、跨平台,广泛用于 Android、后端(Spring Boot)和多平台开发(Kotlin Multiplatform)。相比 Java,Kotlin 代码量减少约 40%,空安全特性降低崩溃率,2025 年 Kotlin 2.0(K2 编译器)进一步优化性能。本教程聚焦 Kotlin 基础语法,适合初学者快速上手,基于官方文档、CSDN 和知乎实践,覆盖核心概念、代码示例和注意事项。建议结合 Kotlin Playground(https://play.kotlinlang.org/)练习。
一、Kotlin 基础语法概览(必知)
- 特点:简洁(无分号)、空安全(
?
和!!
)、函数式编程支持、与 Java 100% 互操作。 - 核心用途:Android 开发(Google 推荐,80%+ 项目)、后端(Spring)、KMP(跨 Android/iOS)。
- 2025年趋势:Kotlin 2.0 编译速度提升 50%,Jetpack Compose 和 KMP 占主导。
二、核心语法(必会)
以下按模块讲解,包含简洁代码示例,直接可运行。
1. 变量与数据类型
- 变量声明:
val
:不可变(类似 Javafinal
),推荐优先使用。var
:可变,仅在需要修改时使用。
val name: String = "Alice" // 不可重新赋值
var age: Int = 25 // 可变
age = 26 // 合法
// 类型推断(省略类型)
val city = "Beijing" // 自动推断为 String
- 基本数据类型:Int、Double、String、Boolean、Char 等(基于 JVM,无原始类型)。
val number: Int = 42
val pi: Double = 3.14
val isActive: Boolean = true
- 空安全:
- 默认不可为空,需显式声明
?
表示可空。 - 安全调用(
?.
)、Elvis 运算符(?:
)、非空断言(!!
)。
val nullable: String? = null
val length = nullable?.length ?: 0 // 空则返回 0
val forced = nullable!! // 若 null 抛异常
2. 函数
- 定义:用
fun
关键字,简洁,支持默认参数和表达式体。
fun greet(name: String, greeting: String = "Hello"): String {
return "$greeting, $name!"
}
// 表达式体(单行)
fun add(a: Int, b: Int) = a + b
// 调用
fun main() {
println(greet("Bob")) // 输出:Hello, Bob!
println(add(2, 3)) // 输出:5
}
- 注意:
main
函数是程序入口,Unit
(类似 Javavoid
)可省略。
3. 控制流
- 条件语句:
if
可作为表达式返回结果。
val max = if (a > b) a else b // 类似三元运算符
- when(类似 switch):更强大,支持任意表达式。
fun describe(num: Int) = when (num) {
1 -> "One"
in 2..5 -> "Small"
else -> "Other"
}
println(describe(3)) // 输出:Small
- 循环:
for
、while
、do-while
,for
常用于集合。
for (i in 1..5) { // 闭区间 [1,5]
print("$i ") // 输出:1 2 3 4 5
}
// 步长和逆序
for (i in 10 downTo 1 step 2) {
print("$i ") // 输出:10 8 6 4 2
}
4. 类与对象
- 类声明:简洁,主构造函数直接定义。
class Person(val name: String, var age: Int) {
init {
println("$name is $age years old")
}
fun sayHello() = println("Hi, I'm $name")
}
val person = Person("Alice", 25) // 输出:Alice is 25 years old
person.sayHello() // 输出:Hi, I'm Alice
- 数据类:自动生成
toString
、equals
、copy
等。
data class User(val id: Int, val name: String)
val user = User(1, "Bob")
println(user) // 输出:User(id=1, name=Bob)
val user2 = user.copy(name = "Alice") // 复制并修改
- 单例(object):
object Singleton {
fun say() = println("I'm a singleton!")
}
Singleton.say() // 输出:I'm a singleton!
5. 集合操作
- 集合类型:List、Set、Map,支持不可变(
listOf
)和可变(mutableListOf
)。
val list = listOf(1, 2, 3) // 不可变
val mutableList = mutableListOf("a", "b")
mutableList.add("c") // 可变
- 高阶函数:
map
、filter
等,简洁处理集合。
val numbers = listOf(1, 2, 3, 4)
val doubled = numbers.map { it * 2 } // [2, 4, 6, 8]
val evens = numbers.filter { it % 2 == 0 } // [2, 4]
6. 协程(异步基础)
- 简介:Kotlin 协程简化异步编程,2025 年 Android 开发标配。
- 基本用法:
import kotlinx.coroutines.*
fun main() = runBlocking {
launch {
delay(1000) // 非阻塞延迟
println("World!")
}
println("Hello")
}
// 输出(1秒后):Hello \n World!
- 依赖:添加
kotlinx-coroutines-core:2.0.0
(Gradle 项目)。
7. 空安全与异常处理
- 空安全操作:
val str: String? = null
println(str?.uppercase() ?: "Default") // 空则返回 Default
- 异常处理:
try {
val num = "abc".toInt()
} catch (e: NumberFormatException) {
println("Invalid number: ${e.message}")
}
三、实践示例(简单项目)
- 计数器程序:
fun main() {
var count = 0
while (true) {
println("Count: $count")
print("输入 + 增加,- 减少,q 退出:")
when (readLine()) {
"+" -> count++
"-" -> count--
"q" -> break
}
}
}
- Android 按钮(需 Android Studio):
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button: Button = findViewById(R.id.button)
button.setOnClickListener {
Toast.makeText(this, "Clicked!", Toast.LENGTH_SHORT).show()
}
}
}
四、学习建议与注意事项
- 学习路径:
- 0-1 周:掌握变量、函数、控制流,用 Kotlin Playground 练习。
- 1-4 周:学习类、集合、协程,开发简单 Android App。
- 1-3 月:深入 KMP、Compose,参与开源项目。
- 注意事项:
- 空安全:优先用
?.
和?:
,避免!!
(易抛异常)。 - 简洁性:多用表达式体和类型推断,减少样板代码。
- 调试:用 IntelliJ IDEA 或 Android Studio,断点调试更高效。
- 2025年趋势:
- Jetpack Compose:Android UI 开发主流,学习 Composable 函数。
- KMP:跨平台项目占比 70%,适合职业开发者。
- AI 辅助:IntelliJ 的 Codeium 插件自动补全代码,提速 30%。
五、推荐资源
- 官方:
- Kotlin 官网:https://kotlinlang.org/docs/basics.html
- Kotlin Playground:https://play.kotlinlang.org/
- 国内:
- B站:尚硅谷 Kotlin 教程(免费,20+小时)。
- CSDN:搜索“Kotlin 基础语法”。
- 书籍:Kotlin in Action(英文,官方推荐)或《Kotlin 编程权威指南》(中文,约 50 元)。
六、总结
Kotlin 基础语法必知空安全、函数式编程和协程,必会变量、函数、类、集合操作。2025年,Kotlin 2.0 优化语法和性能,Android 开发首选。练习 1 周可掌握基础,1 月可开发简单 App。相比 Java,Kotlin 更简洁、安全,适合初学者和转型者。
如果有具体需求(如 Android 示例、协程深入)或代码问题,告诉我,我可以提供更详细代码!