基础语法与类型
val/var、基本类型、字符串模板。
35 分钟
基础语法与类型
Kotlin 语法比 Java 更简洁:val/var 替代类型声明,when 替代复杂 switch,字符串模板内置。类型系统与 Java 基本对应,但默认不可空。
学习目标
- 掌握
val(只读)与var(可变)的声明与类型推断 - 理解基本类型、字符串模板与多行字符串
- 熟悉类型转换与智能转换(smart cast)
变量与类型推断
fun main() {
val name: String = "CodeRoadMap" // 只读,不可重新赋值
var count = 0 // 类型推断为 Int
count += 1
val pi = 3.14159 // Double
val active = true // Boolean
println("$name has $count lessons")
}
val 类似 Java 的 final;var 类似普通局部变量。顶层 val 是编译期常量。
基本类型
| 类别 | Kotlin | Java 对应 |
|---|---|---|
| 整数 | Int、Long、Short、Byte | int、long 等 |
| 浮点 | Float、Double | float、double |
| 字符 | Char | char |
| 布尔 | Boolean | boolean |
Kotlin 基本类型在 JVM 上映射为 Java 原始类型(可空时装箱)。
字符串模板
val slug = "kotlin-essentials"
val title = "Kotlin 语言入门"
// 简单插值
println("Track: $slug")
// 表达式插值
println("Full: ${slug.replace("-", " ")}")
// 多行字符串
val sql = """
SELECT slug, title
FROM cf_lesson
WHERE track_slug = '$slug'
""".trimIndent()
println(sql)
三引号 """ 保留换行,.trimIndent() 去除公共缩进。
类型转换
fun describe(value: Any) {
when (value) {
is String -> println("长度: ${value.length}") // 智能转换为 String
is Int -> println("平方: ${value * value}")
else -> println("未知类型")
}
}
fun main() {
describe("hello")
describe(42)
val x: Int = 10
val y: Long = x.toLong() // 必须显式转换,无隐式 widening
}
is 检查后编译器自动 smart cast,无需 强转。