Kotlin 从入门到进阶 之基础语法模块(一)

Kotlin 基础

1. 变量与常量

kotlin 复制代码
// val = 不可变引用(类似 Java final)
val name: String = "windCloud"
val age = 25              // 类型推断

// var = 可变引用
var counter = 0
counter = 1               // OK
// name = "other"         // 编译错误

// 顶层变量
val GLOBAL_CONST = 100    // 编译时常量
var globalVar = "I am global"

2. 基本数据类型

kotlin 复制代码
// 数值类型
val int: Int = 42
val long: Long = 9999999999L
val double: Double = 3.14
val float: Float = 3.14f

// 布尔
val isActive: Boolean = true

// 字符
val grade: Char = 'A'

// 字符串
val str: String = "Hello"
val str2 = String(charArrayOf('H', 'i'))

// 数组
val arr: Array<Int> = arrayOf(1, 2, 3)
val intArray = intArrayOf(1, 2, 3)      // IntArray 更高效
val list = listOf(1, 2, 3)              // 常用替代

3. 流程控制

kotlin 复制代码
// if-else
val max = if (a > b) a else b

// when(替代 switch)
when (x) {
    1 -> println("one")
    2, 3 -> println("two or three")
    in 4..10 -> println("in range")
    else -> println("unknown")
}

// for 循环
for (i in 0..10) { }        // 0 到 10(含)
for (i in 0 until 10) { }   // 0 至 9(不含)
for (i in 0..10 step 2) { }  // 步长 2
for (item in list) { }

// while / do-while
while (condition) { }
do { } while (condition)

// 区间判断
val inRange = x in 1..100
val notIn = x !in 1..100

4. 字符串

kotlin 复制代码
val name = "Kotlin"

// 字符串模板
println("Hello, $name")           // Hello, Kotlin
println("Length: ${name.length}") // Length: 6

// 换行
val multiline = """
    |第一行
    |第二行
    |缩进保留
    """.trimMargin()

// 原始字符串(无转义)
val path = """C:\Users\Thinkpad"""

// 字符串操作
str.uppercase()
str.lowercase()
str.substring(0, 4)
str.replace("old", "new")
str.split(",")

5. 空安全体系

kotlin 复制代码
// 可空类型必须用 ? 声明
var nullable: String? = null

// 安全调用
nullable?.length         // null 则返回 null

// Elvis 运算符 ?:
val len = nullable?.length ?: 0   // null 时返回 0

// 非空断言(慎用)
val len2 = nullable!!.length      // null 时抛异常

// let:空安全执行块
nullable?.let {
    println("Length is ${it.length}")
}

// run:在对象上执行代码块,返回结果
val result = str.run {
    this.uppercase()
}

// apply:配置对象,返回对象本身
val person = Person().apply {
    name = "windCloud"
    age = 25
}

// also:额外操作,返回对象本身
val list2 = mutableListOf(1, 2).also {
    println("Created list with $it")
}

// 完整示例
fun processString(input: String?): Int {
    return input?.let {
        if (it.isNotEmpty()) it.length
        else 0
    } ?: 0
}

快速对照表

关键字 用途 可变性
val 声明常量 引用不可变
var 声明变量 引用可变
? 可空类型 值可为 null
?. 安全调用 null 时短路
?: Elvis 运算符 null 时提供默认值
!! 非空断言 null 时抛异常
let 空安全执行 返回块结果
run 执行代码块 返回块结果
apply 配置对象 返回对象本身
also 额外操作 返回对象本身
相关推荐
老迟到的茉莉7 分钟前
Hermes 是谁?跟 Claude Code 差在哪
开发语言·python
学逆向的11 分钟前
汇编——内存
开发语言·汇编·算法·网络安全
lbb 小魔仙37 分钟前
MuMu 模拟器 6.0 硬核测评:这次升级确实不一样
java·开发语言·模拟器·mumu·硬核测评
r_oo_ki_e_1 小时前
Java 线程池
java·开发语言
杜子不疼.2 小时前
【Qt初识】信号槽(二):自定义信号函数与槽函数
开发语言·qt
ctrl_v助手2 小时前
C#日志工具类log4net的使用
开发语言·c#
秋田君2 小时前
Qt_QVariant
开发语言·qt
江华森2 小时前
Python 实现高德地图找房(三):地图可视化与高德 JS API
开发语言·javascript·python
weixin_471383032 小时前
args,...args与Parameters<T>
开发语言·前端
ctrl_v助手3 小时前
C#表达题笔记
开发语言·c#