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:不可变(类似 Java final),推荐优先使用。
  • 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(类似 Java void)可省略。
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
  • 循环forwhiledo-whilefor 常用于集合。
  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
  • 数据类:自动生成 toStringequalscopy 等。
  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") // 可变
  • 高阶函数mapfilter 等,简洁处理集合。
  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()
          }
      }
  }

四、学习建议与注意事项

  1. 学习路径
  • 0-1 周:掌握变量、函数、控制流,用 Kotlin Playground 练习。
  • 1-4 周:学习类、集合、协程,开发简单 Android App。
  • 1-3 月:深入 KMP、Compose,参与开源项目。
  1. 注意事项
  • 空安全:优先用 ?.?:,避免 !!(易抛异常)。
  • 简洁性:多用表达式体和类型推断,减少样板代码。
  • 调试:用 IntelliJ IDEA 或 Android Studio,断点调试更高效。
  1. 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 示例、协程深入)或代码问题,告诉我,我可以提供更详细代码!

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注