Android应用开发学习记录(2):Kotlin 语法入门

成元 / 2026-08-12 / 约 2513 字 / 预计阅读 6 分钟 < 教程, 笔记 >[ Android, Kotlin ]

前言

根据官方教程,学习 Android 原生开发的第一步是了解 Kotlin 的基础语法,因此这里写一篇 Kotlin 学习笔记。

本文主要参考 Android 开发者官网提供的官方教程。如果时间充足,建议直接学习官方教程。本文是对其中基础语法的精简总结,更适合快速入门或者供“古法编程爱好者们”复习 Kotlin 语法时查阅。

本文默认你学过 C 或 C++ 中的至少一种,部分内容会以它们作为参考进行说明。当然这并非意味着我认为万物起源于 C/C++,我这么说只是为了方便大家理解,实际上每种语言都有其擅长和不擅长的领域。我们经常放在一起说的 C 和 C++,两者也有很大的区别,更别提其它编成语言了。

题外话,Kotlin 的读音接近“cot-lin”,用中文注音的话就是“科特林”。

话不多说,打开 Kotlin 园地,开始学习吧!

Hello World

先从经典的 Hello World 程序开始:

fun main() {
    println("Hello, world!")
}

运行后会输出:

Hello, world!

和 C/C++ 中的输出函数类似,println() 会输出括号中的内容,并在末尾换行。

程序的入口

和 C/C++ 一样,可独立运行的 Kotlin 应用程序以 main() 函数作为入口,程序会从这里开始执行。具体写法可以参考上面的 Hello World 程序。

不过值得注意的是,Android 应用由系统启动,通常不需要开发者自己编写 main() 函数。

函数

定义并调用函数

Kotlin 中的函数和 C/C++ 类似,只是使用 fun 关键字,并将返回值类型写在形参列表后面:

fun functionName(parameterName: ParameterType): ReturnType {
    // 函数体
    return value
}

如果函数没有需要返回的结果,可以省略返回值类型,此时默认为 Unit。它和 C/C++ 中的 void 用途相近,也不需要写 return 语句。

函数调用方式和 C/C++ 基本相同:

fun main() {
    sayHello()
}

fun sayHello() {
    println("Hello!")
}

形参写法与只读特性

形参和实参的概念与 C/C++ 相同。不同的是,Kotlin 需要将形参写成 名称: 类型,而且形参是只读的,不能在函数体内重新赋值。它的工作方式类似于使用 val 声明的变量。

下面的函数接收 nameage 两个形参,并返回一个 String

fun main() {
    println(birthdayGreeting("Rover", 5))
    println(birthdayGreeting("Rex", 2))
}

fun birthdayGreeting(name: String, age: Int): String {
    val nameGreeting = "Happy Birthday, $name!"
    val ageGreeting = "You are now $age years old!"
    return "$nameGreeting\n$ageGreeting"
}

这里的 birthdayGreeting() 接收两个形参并返回一个 String,整体用法和 C/C++ 中的函数相近。

看懂函数签名

函数名称及其形参统称为“函数签名”,例如:

fun birthdayGreeting(name: String, age: Int)

了解这个术语即可,阅读代码和文档时经常会遇到。

使用具名实参

C/C++ 调用函数时,实参顺序要与形参列表保持一致。参数较多时,需要逐个确认它们的对应关系,有时比较麻烦。

Kotlin 可以使用“具名实参”,也就是在调用函数时写出形参名称。使用具名实参后,可以调整实参顺序,代码的含义也会更清楚:

println(birthdayGreeting(age = 2, name = "Rex"))
println(birthdayGreeting(name = "Rex", age = 2))

设置默认实参

Kotlin 可以直接为形参设置默认值。调用函数时没有传入对应的实参,就会使用这个默认值:

fun birthdayGreeting(name: String = "Rover", age: Int): String {
    return "Happy Birthday, $name! You are now $age years old!"
}

当带有默认值的形参位于没有默认值的形参前面时,可以配合具名实参,只传入必需的实参:

println(birthdayGreeting(age = 5))
println(birthdayGreeting("Rex", 2))

函数的代码风格

下面是一些和函数有关的代码风格:

这么做主要是为了提高代码的可读性,并在大型项目协作中保持一致。具体格式可以参考 Hello World 中的代码。

完整说明可以查看 Google 制定的 Android Kotlin 样式指南

添加新的语句

按照 Kotlin 的代码风格,每个语句都应该单独占一行。 如果要新增语句,就在函数体中另起一行:

fun main() {
    println("Hello, Android!")
    println("Hello, Android!")
}

不使用分号时,不能把两个语句直接写在同一行:

fun main() {
    println("Hello, Android!") println("Hello, Android!") // 编译错误
}

Kotlin 的分号是可选的。如果一定要把多个语句写在同一行,可以使用分号分隔,但官方代码风格建议尽量省略分号,并让每个语句单独占一行。

变量

Kotlin 变量的基本概念和 C/C++ 相同,主要区别在于声明方式、类型推断以及 valvar

常见数据类型

下面是一些常见的 Kotlin 数据类型:

Kotlin 数据类型 可包含的数据类型 字面量值示例
String 文本 "Add contact"
"Search"
"Sign in"
Int 整数 32
1293490
-59281
Double 小数 2.0
501.0292
-31723.99999
Float 小数(不如 Double 精确),数字末尾带有 fF 5.0f
-1630.209f
1.2940278F
Boolean truefalse。当只有两个可能的值时,可使用此数据类型。truefalse 是 Kotlin 中的关键字。 true
false

声明变量

Kotlin 使用 valvar 声明变量,类型写在变量名称后面:

val variableName: Type = initialValue
fun main() {
    val count: Int = 2

    // 输出 2
    println(count)
}

val 用于声明只读变量,var 用于声明可以重新赋值的变量,具体区别见区分 valvar

使用类型推断

Kotlin 支持类型推断。声明变量时如果提供了初始值,通常可以省略类型。因此,声明变量中的代码可以简写为:

val count = 2

如果没有提供初始值,就必须指定类型,并在使用变量前完成初始化:

val count: Int
count = 2
println(count)

在字符串中插入变量

fun main() {
    val count: Int = 2

    // 输出 You have 2 unread messages.
    println("You have $count unread messages.")
}

Kotlin 支持字符串模板。使用 $变量名 可以直接将变量值插入字符串中。

如果要插入更复杂的表达式,就需要使用 ${表达式} 的形式。例如:

fun main() {
    val unreadCount = 5
    val readCount = 100

    // 输出 You have 105 total messages in your inbox.
    println("You have ${unreadCount + readCount} total messages in your inbox.")
}

区分 valvar

这是 Kotlin 与 C/C++ 差异比较明显的地方:

fun main() {
    var count = 2
    count = 3
    println(count)
}

需要注意,val 只保证变量不能指向另一个值,并不代表它引用的对象一定不可修改。

Kotlin 建议默认使用 val,只有确实需要重新赋值时才使用 var,以减少变量被意外修改的情况。

++-- 运算符

Kotlin 也支持 ++-- 运算符,但只能用于可以重新赋值的变量:

var count = 2
count++
count--

变量的代码风格

注释

Kotlin 的单行注释和多行注释写法与 C/C++ 相同:

// 注释 1

/* 注释 2
 * 注释 3
 * 注释 4
 */

Kotlin 的多行注释还可以嵌套,这一点与 C/C++ 不同:

/* 外层注释
    /* 内层注释 */
 */

结语

不得不说,Android 官网提供的教程真是把读者当小朋友来教,看电子书竟然看出了上课的感觉。

我挺喜欢这种教学方式。初学者可以跟着教程慢慢学习,有基础的人也可以快速跳过说明,只看强调的重点。

官方教程最后提供的Kotlin 基础练习题也不错,难度适中,正好用来巩固理解。如果你是初学者,了解完 Kotlin 的基础语法后,建议做一下这些题目,加深对变量和函数的理解。

参考资料