
文章目录
- (一)Kotlin------基础语法
-
- [1. 变量](#1. 变量)
- [2. 运算符](#2. 运算符)
-
- [2.1 算数运算符](#2.1 算数运算符)
- [2.2 位运算符](#2.2 位运算符)
- [2.3 逻辑运算符](#2.3 逻辑运算符)
- [3. 流程控制](#3. 流程控制)
-
- [3.1 if-else](#3.1 if-else)
- [3.2 when](#3.2 when)
- [3.3 for](#3.3 for)
- [3.4 while](#3.4 while)
- [3.5 do-while](#3.5 do-while)
(一)Kotlin------基础语法
本教程不适合完全零基础的学习者,不会详细解释变量、类型、循环、条件判断等通用编程概念。它更适合已经有 Java 基础、正在快速入门 Kotlin 的用户。文档只保留常用语法和简单示例,帮助你快速建立 Kotlin 与 Java 之间的语法对应关系。
1. 变量
Kotlin 中变量主要分为两类:
| 关键字 | 含义 | 类比 Java |
|---|---|---|
val |
只读变量,赋值后不能重新赋值 | 类似 final 变量 |
var |
可变变量,可以重新赋值 | 普通变量 |
kotlin
var 变量名称: 数据类型
val 变量名称: 数据类型
// 示例:
val a: Int = 10
var b: Int = 20
b = 30
Kotlin 支持类型推断,能推断出类型时可以省略类型声明:
kotlin
val a = 10 // 推断为 Int
val name = "Tom" // 推断为 String
整型:
| 类型 | 大小(位) | 最小值 | 最大值 |
|---|---|---|---|
Byte |
8 | -128 | 127 |
Short |
16 | -32768 | 32767 |
Int |
32 | -2,147,483,648 (-2^31) | 2,147,483,647(2^31-1) |
Long |
64 | -9,223,372,036,854,775,808 (-2^63) | 9,223,372,036,854,775,807(2^63 - 1) |
kotlin
fun main() {
val age: Int = 18
val count = 100
val distance: Long = 10000000000L
println(age) // 18
println(count) // 100
println(distance) // 10000000000
}
浮点型:
| 类型 | 大小(位) | 符号与尾数位数 | 小数位数 |
|---|---|---|---|
Float |
32 | 24 | 6-7 |
Double |
64 | 53 | 15-16 |
kotlin
fun main() {
val price: Double = 19.99
val score: Float = 98.5F
println(price) // 19.99
println(score) // 98.5
}
布尔型:
| 类型 | 值 |
|---|---|
Boolean |
true、false |
kotlin
fun main() {
val isLogin: Boolean = true
val isVip = false
println(isLogin) // true
println(isVip) // false
}
字符型:
| 类型 | 含义 | 示例 |
|---|---|---|
Char |
单个字符,使用单引号 | 'A'、'中' |
kotlin
fun main() {
val c: Char = 'A'
println(c) // A
}
字符串类型:
| 类型 | 含义 | 示例 |
|---|---|---|
String |
字符串,使用双引号 | "Hello Kotlin" |
kotlin
fun main() {
val a = 10
val text = "这是拼接的值$a" // $ 是模板表达式,会把变量值拼接到字符串中
val text2 = "计算结果:${a + 20}" // 表达式需要用 ${}
println(text) // 这是拼接的值10
println(text2) // 计算结果:30
}
2. 运算符
2.1 算数运算符
| 运算符 | 含义 | 示例 |
|---|---|---|
+ |
加法 | a + b |
- |
减法 | a - b |
* |
乘法 | a * b |
/ |
除法 | a / b |
% |
取余 | a % b |
++ |
自增 | a++ |
-- |
自减 | a-- |
kotlin
fun main() {
var a = 10
val b = 3
println(a + b) // 13
println(a - b) // 7
println(a * b) // 30
println(a / b) // 3
println(a % b) // 1
a++
println(a) // 11
}
2.2 位运算符
Kotlin 没有 Java 中的 <<、>>、&、| 这类位运算符写法,而是使用函数形式。位运算只适用于 Int 和 Long 类型。
| Kotlin 写法 | 含义 | Java 类比 |
|---|---|---|
a shl b |
有符号左移 | a << b |
a shr b |
有符号右移 | a >> b |
a ushr b |
无符号右移 | a >>> b |
a and b |
按位与 | a & b |
a or b |
按位或 | `a |
a xor b |
按位异或 | a ^ b |
a.inv() |
按位取反 | ~a |
kotlin
fun main() {
val a = 8 // 二进制:1000
val b = 2
println(a shl b) // 32
println(a shr b) // 2
println(a and b) // 0
println(a or b) // 10
println(a xor b) // 10
println(a.inv()) // -9
}
2.3 逻辑运算符
| 运算符 | 含义 | 示例 |
|---|---|---|
== |
判断值相等 | a == b |
!= |
判断值不相等 | a != b |
< |
小于 | a < b |
> |
大于 | a > b |
<= |
小于等于 | a <= b |
>= |
大于等于 | a >= b |
in |
判断是否在范围内 | x in 1..10 |
!in |
判断是否不在范围内 | x !in 1..10 |
&& |
逻辑与 | a > 0 && b > 0 |
| ` | ` | |
! |
逻辑取反 | !flag |
kotlin
fun main() {
val a = 10
val b = 20
val flag = true
println(a == b) // false
println(a < b) // true
println(a in 1..10) // true
println(a > 0 && b > 0) // true
println(!flag) // false
}
3. 流程控制
Kotlin 中 if、when、循环语句的基本思想和 Java 类似。如果分支或循环体只有一行代码,可以省略 {};如果有多行代码,必须保留 {}。
3.1 if-else
kotlin
if (条件判断) {
条件成立时执行的代码
} else {
条件不成立时执行的代码
}
Kotlin 中 if-else 可以作为表达式使用,即可以直接返回结果。
kotlin
fun main() {
val score = 85
val result = if (score >= 60) {
"及格"
} else {
"不及格"
}
println(result) // 及格
}
3.2 when
when 类似 Java 中的 switch,但功能更强,适合多分支判断。
kotlin
when (目标) {
匹配值1 -> 代码
匹配值2 -> 代码
else -> 代码
}
kotlin
fun main() {
val level = 2
val result = when (level) {
1 -> "初级"
2 -> "中级"
3 -> "高级"
else -> "未知等级"
}
println(result) // 中级
}
when 也可以判断范围:
kotlin
fun main() {
val score = 85
val result = when (score) {
in 90..100 -> "优秀"
in 60..89 -> "及格"
else -> "不及格"
}
println(result) // 及格
}
3.3 for
kotlin
for (遍历出来的单个目标变量 in 可遍历目标) {
循环体
}
kotlin
fun main() {
for (i in 1..3) {
println("当前值:$i") // 当前值:1、当前值:2、当前值:3
}
}
指定步长:
kotlin
fun main() {
for (i in 1..10 step 2) {
println(i) // 1、3、5、7、9
}
}
倒序遍历:
kotlin
fun main() {
for (i in 10 downTo 1) {
println(i) // 10、9、8、7、6、5、4、3、2、1
}
}
不包含结束值:
kotlin
fun main() {
for (i in 0 until 5) {
println(i) // 0、1、2、3、4
}
}
3.4 while
while 先判断条件,条件成立才执行循环体。
kotlin
while (循环条件) {
循环体
}
kotlin
fun main() {
var i = 100
while (i > 0) {
println(i) // 100、50、25、12、6、3、1
i /= 2
}
}
3.5 do-while
do-while 会先执行一次循环体,再判断条件。因此不管条件是否成立,循环体至少执行一次。
kotlin
do {
循环体
} while (循环条件)
kotlin
fun main() {
var i = 0
do {
println("Hello World!") // 输出 10 次 Hello World!
i++
} while (i < 10)
}
✨✨✨