(一)Kotlin—基础语法

文章目录

  • (一)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 truefalse
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 中的 <<>>&| 这类位运算符写法,而是使用函数形式。位运算只适用于 IntLong 类型。

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 中 ifwhen、循环语句的基本思想和 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)
}

✨✨✨