- Kotlin 教程
- Kotlin - 首页
- Kotlin - 概述
- Kotlin - 环境设置
- Kotlin - 架构
- Kotlin - 基本语法
- Kotlin - 注释
- Kotlin - 关键字
- Kotlin - 变量
- Kotlin - 数据类型
- Kotlin - 运算符
- Kotlin - 布尔值
- Kotlin - 字符串
- Kotlin - 数组
- Kotlin - 范围
- Kotlin - 函数
- Kotlin 控制流
- Kotlin - 控制流
- Kotlin - if...else 表达式
- Kotlin - when 表达式
- Kotlin - for 循环
- Kotlin - while 循环
- Kotlin - break 和 continue
- Kotlin 集合
- Kotlin - 集合
- Kotlin - 列表
- Kotlin - 集合
- Kotlin - 映射
- Kotlin 对象和类
- Kotlin - 类和对象
- Kotlin - 构造函数
- Kotlin - 继承
- Kotlin - 抽象类
- Kotlin - 接口
- Kotlin - 可见性控制
- Kotlin - 扩展
- Kotlin - 数据类
- Kotlin - 密封类
- Kotlin - 泛型
- Kotlin - 委托
- Kotlin - 解构声明
- Kotlin - 异常处理
- Kotlin 有用资源
- Kotlin - 快速指南
- Kotlin - 有用资源
- Kotlin - 讨论
Kotlin - 运算符
运算符是告诉编译器执行特定数学或逻辑运算的符号。Kotlin 拥有丰富的内置运算符,并提供以下类型的运算符:
算术运算符
关系运算符
赋值运算符
一元运算符
逻辑运算符
位运算
现在让我们逐一了解这些 Kotlin 运算符。
(a) Kotlin 算术运算符
Kotlin 算术运算符用于执行基本的数学运算,例如加法、减法、乘法和除法等。
| 运算符 | 名称 | 描述 | 示例 |
|---|---|---|---|
| + | 加法 | 将两个值相加 | x + y |
| - | 减法 | 从一个值中减去另一个值 | x - y |
| * | 乘法 | 将两个值相乘 | x * y |
| / | 除法 | 将一个值除以另一个值 | x / y |
| % | 取模 | 返回除法的余数 | x % y |
示例
以下示例演示了使用 Kotlin 算术运算符进行的不同计算
fun main(args: Array<String>) {
val x: Int = 40
val y: Int = 20
println("x + y = " + (x + y))
println("x - y = " + (x - y))
println("x / y = " + (x / y))
println("x * y = " + (x * y))
println("x % y = " + (x % y))
}
运行上述 Kotlin 程序时,将生成以下输出
x + y = 60 x - y = 20 x / y = 2 x * y = 800 x % y = 0
(b) Kotlin 关系运算符
Kotlin 关系(比较)运算符用于比较两个值,并返回一个 **布尔** 值:**true** 或 **false**。
| 运算符 | 名称 | 示例 |
|---|---|---|
| > | 大于 | x > y |
| < | 小于 | x < y |
| >= | 大于或等于 | x >= y |
| <= | 小于或等于 | x <= y |
| == | 等于 | x == y |
| != | 不等于 | x != y |
示例
以下示例演示了使用 Kotlin 关系运算符进行的不同计算
fun main(args: Array<String>) {
val x: Int = 40
val y: Int = 20
println("x > y = " + (x > y))
println("x < y = " + (x < y))
println("x >= y = " + (x >= y))
println("x <= y = " + (x <= y))
println("x == y = " + (x == y))
println("x != y = " + (x != y))
}
运行上述 Kotlin 程序时,将生成以下输出
x > y = true x < y = false x >= y = true x <= y = false x == y = false x != y = true
(c) Kotlin 赋值运算符
Kotlin 赋值运算符用于为变量赋值。
以下是一个示例,其中我们使用赋值运算符 **=** 将值赋给两个变量
fun main(args: Array<String>) {
val x: Int = 40
val y: Int = 20
println("x = " + x)
println("y = " + y)
}
运行上述 Kotlin 程序时,将生成以下输出
x = 40 y = 20
以下是一个更复杂的例子,我们使用赋值运算符 **+=** 将自身变量的值相加,然后将其重新赋值给同一个变量
fun main(args: Array<String>) {
var x: Int = 40
x += 10
println("x = " + x)
}
运行上述 Kotlin 程序时,将生成以下输出
x = 50
以下是所有赋值运算符的列表
| 运算符 | 示例 | 展开形式 |
|---|---|---|
| = | x = 10 | x = 10 |
| += | x += 10 | x = x - 10 |
| -= | x -= 10 | x = x - 10 |
| *= | x *= 10 | x = x * 10 |
| /= | x /= 10 | x = x / 10 |
| %= | x %= 10 | x = x % 10 |
示例
以下示例演示了使用 Kotlin 赋值运算符进行的不同计算
fun main(args: Array<String>) {
var x: Int = 40
x += 5
println("x += 5 = " + x )
x = 40;
x -= 5
println("x -= 5 = " + x)
x = 40
x *= 5
println("x *= 5 = " + x)
x = 40
x /= 5
println("x /= 5 = " + x)
x = 43
x %= 5
println("x %= 5 = " + x)
}
运行上述 Kotlin 程序时,将生成以下输出
x += 5 = 45 x -= 5 = 35 x *= 5 = 200 x /= 5 = 8 x %= 5 = 3
(d) Kotlin 一元运算符
一元运算符只需要一个操作数;它们执行各种操作,例如将值加 1/减 1、否定表达式或反转布尔值。
以下是 Kotlin 一元运算符的列表
| 运算符 | 名称 | 示例 |
|---|---|---|
| + | 一元加 | +x |
| - | 一元减 | -x |
| ++ | 加 1 | ++x |
| -- | 减 1 | --x |
| ! | 反转布尔值 | !x |
示例
以下示例演示了使用 Kotlin 一元运算符进行的不同计算
fun main(args: Array<String>) {
var x: Int = 40
var b:Boolean = true
println("+x = " + (+x))
println("-x = " + (-x))
println("++x = " + (++x))
println("--x = " + (--x))
println("!b = " + (!b))
}
运行上述 Kotlin 程序时,将生成以下输出
+x = 40 -x = -40 ++x = 41 --x = 40 !b = false
这里,增量 (++) 和减量 (--) 运算符可以用作前缀,如 ++x 或 --x,也可以用作后缀,如 x++ 或 x--。这两种形式的唯一区别在于,如果我们将其用作前缀,则运算符将在表达式执行之前应用,但如果将其用作后缀,则运算符将在表达式执行之后应用。
(e) Kotlin 逻辑运算符
Kotlin 逻辑运算符用于确定两个变量或值之间的逻辑关系。
以下是 Kotlin 逻辑运算符的列表
| 运算符 | 名称 | 描述 | 示例 |
|---|---|---|---|
| && | 逻辑与 | 如果两个操作数都为真,则返回真 | x && y |
| || | 逻辑或 | 如果任一操作数为真,则返回真 | x || y |
| ! | 逻辑非 | 反转结果,如果操作数为真,则返回假 | !x |
示例
以下示例演示了使用 Kotlin 逻辑运算符进行的不同计算
fun main(args: Array<String>) {
var x: Boolean = true
var y:Boolean = false
println("x && y = " + (x && y))
println("x || y = " + (x || y))
println("!y = " + (!y))
}
运行上述 Kotlin 程序时,将生成以下输出
x && y = false x || y = true !y = true
(e) Kotlin 位运算
Kotlin 没有位运算符,但 Kotlin 提供了一系列辅助函数来执行位运算。
以下是 Kotlin 位运算函数的列表
| 函数 | 描述 | 示例 |
|---|---|---|
| shl (bits) | 有符号左移 | x.shl(y) |
| shr (bits) | 有符号右移 | x.shr(y) |
| ushr (bits) | 无符号右移 | x.ushr(y) |
| and (bits) | 按位与 | x.and(y) |
| or (bits) | 按位或 | x.or(y) |
| xor (bits) | 按位异或 | x.xor(y) |
| inv() | 按位非 | x.inv() |
示例
以下示例演示了使用 Kotlin 位运算函数进行的不同计算
fun main(args: Array<String>) {
var x:Int = 60 // 60 = 0011 1100
var y:Int = 13 // 13 = 0000 1101
var z:Int
z = x.shl(2) // 240 = 1111 0000
println("x.shl(2) = " + z)
z = x.shr(2) // 15 = 0000 1111
println("x.shr(2) = " + z)
z = x.and(y) // 12 = 0000 1100
println("x.and(y) = " + z)
z = x.or(y) // 61 = 0011 1101
println("x.or(y) = " + z)
z = x.xor(y) // 49 = 0011 0001
println("x.xor(y) = " + z)
z = x.inv() // -61 = 1100 0011
println("x.inv() = " + z)
}
运行上述 Kotlin 程序时,将生成以下输出
x.shl(2) = 240 x.shr(2) = 15 x.and(y) = 12 x.or(y) = 61 x.xor(y) = 49 x.inv() = -61
测验时间 (面试与考试准备)
题 1 - Kotlin 运算符 % 有什么作用?
答案:D
解释
给定的运算符 % 称为算术模运算符,返回一个数除以另一个数后的余数。
答案:C
解释
给定的运算符 ++ 在 Kotlin 中称为一元增量运算符
答案:B
解释
函数 x.shr(y) 用于将给定 x 操作数的位向右移动 y 次。
题 6 - 以下 Kotlin 代码的输出是什么?
fun main(args: Array<String>) {
var x: Int = 40
x += 10
println(x)
}
答案:C
解释
这里给定的运算符 **+=** 是加法赋值运算符,这意味着它等效于 x = x + 10,这将产生 50 的值。