Manon.icu

I'm here to make you a better developer by teaching you everything I know about building for the web.

Published 2025-05-01

Kotlin 基础语法

变量与常量声明

  1. 变量 var

变量声明后可以随时修改其值。

var age = 25
var name: String = "John"

Kotlin 支持类型自动推断,上述 age 会自动推断为 Int 类型。

  1. 常量 val

常量声明后不可修改其值。

val PI = 3.14
val message: String = "Hello, Kotlin!"

推荐优先使用 val,只有需要可变变量时才用 var。

数据类型

  1. 基本数据类型

Kotlin 中的基本数据类型包括 Int、Long、Double、Boolean、Char、Float、Short、Byte 等。

val num: Int = 10
val price: Double = 9.99
val flag: Boolean = true
val letter: Char = 'A'
val pi: Float = 3.14f
  1. 字符串与模板字符串
val name = "Kotlin"
val greeting = "Hello, $name!"
val info = "${name.length} characters"
  1. 可空类型

Kotlin 中的可空类型使用 ? 表示,可以为 null。

var str: String? = null
var num: Int? = null

访问可空类型属性时需用安全调用符 ?.,如 str?.length

  1. 类型转换

Kotlin 不支持隐式类型转换,需使用 toInt()、toDouble() 等方法。

val s = "123"
val n = s.toInt()

运算符与表达式

  1. 算术运算符

Kotlin 中的算术运算符包括加(+)、减(-)、乘(*)、除(/)、取模(%)等。

val a = 10
val b = 5
val sum = a + b
val product = a * b
  1. 比较运算符

Kotlin 中的比较运算符包括等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)等。

val a = 10
val b = 5
if (a > b) {
    println("a is greater than b")
}
if (a == b) {
    println("a equals b")
}

注意:== 比较的是值,=== 比较的是引用。

  1. 逻辑运算符

Kotlin 中的逻辑运算符包括与(&&)、或(||)、非(!)等。

val a = true
val b = false
if (a && b) {
    println("Both a and b are true")
}
if (a || b) {
    println("At least one of a and b is true")
}
if (!a) {
    println("a is false")
}
  1. 条件表达式

Kotlin 中的条件表达式使用 if-else 语句。

val a = 10
val b = 5
val max = if (a > b) a else b

if 语句本身可以作为表达式有返回值。

  1. 区间与 in 运算符
val x = 5
if (x in 1..10) {
    println("x 在 1 到 10 之间")
}

控制流语句

  1. if 语句

Kotlin 中的 if 语句用于条件判断。

val a = 10
val b = 5
if (a > b) {
    println("a is greater than b")
}
  1. when 语句

Kotlin 中的 when 语句用于多条件判断,类似 switch,但更强大。

val a = 10
when (a) {
    1 -> println("a is 1")
    2, 3 -> println("a is 2 or 3")
    in 4..10 -> println("a 在 4 到 10 之间")
    else -> println("a 不在上述范围")
}
  1. for 循环

Kotlin 中的 for 循环用于遍历集合或区间。

val list = listOf(1, 2, 3, 4, 5)
for (item in list) {
    println(item)
}

for (i in 0..4) {
    println(i)
}

for (i in 10 downTo 1 step 2) {
    println(i)
}
  1. while 与 do-while 循环
var i = 0
while (i < 5) {
    println(i)
    i++
}

do {
    println(i)
    i--
} while (i > 0)

其他常用语法

智能类型判断

Kotlin 会自动判断类型,无需强制转换:

fun getLength(obj: Any): Int? {
    if (obj is String) {
        // obj 自动为 String 类型
        return obj.length
    }
    return null
}

字符串模板与原始字符串

val name = "Kotlin"
val s = "Hello, $name!"
val raw = """
    多行字符串
    保留格式
""".trimIndent()

数组与集合

val arr = arrayOf(1, 2, 3)
val list = listOf("a", "b", "c")
val mutableList = mutableListOf(1, 2, 3)

空安全操作符

val s: String? = null
val len = s?.length ?: 0 // 如果 s 为 null,返回 0

数据类(data class)

data class User(val name: String, val age: Int)
val u = User("Tom", 20)
println(u)

对象表达式与单例

object Singleton {
    val name = "唯一实例"
}
println(Singleton.name)

Comments

No Comments!