本文概述
运算符是对操作数(值或变量)执行运算的特殊字符。Kotlin中提供了多种运算符。
- 算术运算符
- 关系运算符
- 赋值运算符
- 一元运算符
- 按位运算
- 逻辑运算符
算术运算符
算术运算符用于执行基本的数学运算, 例如加法(+), 减法(-), 乘法(*), 除法(/)等。
| 操作员 | 描述 | 表达 | 翻译成 |
|---|---|---|---|
| + | Addition | a + b | 加(b) |
| – | Subtraction | a-b | a.minus(b) |
| * | Multiply | a*b | a.times(b) |
| / | Division | a/b | a.div(b) |
| % | Modulus | a%b | 雷姆(b) |
算术运算符的示例
fun main(args : Array<String>) {
var a=10;
var b=5;
println(a+b);
println(a-b);
println(a*b);
println(a/b);
println(a%b);
}
输出:
15
5
50
2
0
关系运算符
关系运算符显示关系并在操作数之间进行比较。以下是不同的关系运算符:
| 操作员 | 描述 | 表达 | 翻译成 |
|---|---|---|---|
| > | greater than | a>b | a.compateTo(B)> 0 |
| < | Less than | a<b | a.compateTo(b)<0 |
| >= | 大于或等于 | a>=b | a.compateTo(B)> = 0 |
| <= | 小于或等于 | a<=b | a?.equals(b)?:( b === null) |
| == | 等于 | a==b | a?.equals(b)?:( b === null) |
| != | 不等于 | a!=b | !(a?.equals(b)?:( b === null)) |
关系运算符的示例
fun main(args : Array<String>) {
val a = 5
val b = 10
val max = if (a > b) {
println("a is greater than b.")
a
} else{
println("b is greater than a.")
b
}
println("max = $max")
}
输出:
b is greater than a.
max = 10
赋值运算符
赋值运算符“ =”用于为另一个变量赋值。值的分配从右到左。
| 操作员 | 描述 | 表达 | 转换成 |
|---|---|---|---|
| += | 添加并分配 | a+=b | a.plusAssign(b) |
| -= | 减去并分配 | a-=b | a.minusAssign(b) |
| *= | 乘法和分配 | a*=b | a.timesAssign(b) |
| /= | 划分和分配 | a/=b | a.divAssign(b) |
| %= | mod和分配 | a%=b | a.remAssign(b) |
赋值运算符的示例
fun main(args : Array<String>) {
var a =20;var b=5
a+=b
println("a+=b :"+ a)
a-=b
println("a-=b :"+ a)
a*=b
println("a*=b :"+ a)
a/=b
println("a/=b :"+ a)
a%=b
println("a%=b :"+ a)
}
输出:
a+=b :25
a-=b :20
a*=b :100
a/=b :20
a%=b :0
一元运算符
一元运算符仅与单个操作数一起使用。以下是下面给出的一些一元运算符。
| 操作员 | 描述 | 表达 | 转换成 |
|---|---|---|---|
| + | unary plus | +a | a.unaryPlus() |
| – | 一元减 | -a | a.unaryMinus() |
| ++ | 加1 | ++一 | a.inc() |
| — | 减1 | –a | a.dec() |
| ! | not | !a | a.not() |
一元运算符的示例
fun main(args: Array<String>){
var a=10
var b=5
var flag = true
println("+a :"+ +a)
println("-b :"+ -b)
println("++a :"+ ++a)
println("--b :"+ --b)
println("!flag :"+ !flag)
}
输出:
+a :10
-b :-5
++a :11
--b :4
!flag :false
逻辑运算符
逻辑运算符用于检查操作数之间的条件。逻辑运算符列表如下。
| 操作员 | 描述 | 表达 | 转换成 |
|---|---|---|---|
| && | 如果所有表达式都为true, 则返回true | (a> b)&&(a> c) | (a> b)和(a> c) |
| || | 如果任何表达式为真, 则返回真 | (a> b)|| (a> c) | (a> b)或(a> c) |
| ! | 返回表达式的补码 | !a | a.not() |
逻辑运算符的示例
fun main(args: Array<String>){
var a=10
var b=5
var c=15
var flag = false
var result: Boolean
result = (a>b) && (a>c)
println("(a>b) && (a>c) :"+ result)
result = (a>b) || (a>c)
println("(a>b) || (a>c) :"+ result)
result = !flag
println("!flag :"+ result)
}
输出:
(a>b) && (a>c) :false
(a>b) || (a>c) :true
!flag :true
按位运算
在Kotlin中, 没有任何特殊的按位运算符。使用命名函数完成按位运算。
| 命名功能 | 描述 | 表达 |
|---|---|---|
| shl (bits) | 左移符号 | a.shl(b) |
| shr (bits) | 签名右移 | a.shr(b) |
| ushr (bits) | 无符号右移 | a.ushr(b) |
| and (bits) | bitwise and | 和(b) |
| or (bits) | bitwise or | a.or(b) |
| xor (bits) | bitwise xor | a.xor(b) |
| inv() | 按位逆 | a.inv() |
按位运算示例
fun main(args: Array<String>){
var a=10
var b=2
println("a.shl(b): "+a.shl(b))
println("a.shr(b): "+a.shr(b))
println("a.ushr(b:) "+a.ushr(b))
println("a.and(b): "+a.and(b))
println("a.or(b): "+a.or(b))
println("a.xor(b): "+a.xor(b))
println("a.inv(): "+a.inv())
}
输出:
a.shl(b): 40
a.shr(b): 2
a.ushr(b:) 2
a.and(b): 2
a.or(b): 10
a.xor(b): 8
a.inv(): -11
srcmini
评论前必须登录!
注册