运算符是对操作数(值或变量)执行运算的特殊字符。Kotlin中提供了多种运算符。
算术运算符用于执行基本的数学运算,例如相加(+),相减( - ),相乘(*),相除(/)等。
运算符 | 描述 | 表达式 | 对应方法 |
---|---|---|---|
+ | 加法 | a + b | a.plus(b) |
- | 减法 | a-b | a.minus(b) |
* | 乘法 | a * b | a.times(b) |
/ | 除法 | a/b | a.div(b) |
% | 模数 | a%b | a.rem(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
关系运算符显示操作数之间的关系并进行比较。以下是不同的关系运算符:
运算符 | 描述 | 表达式 | 对应方法 |
---|---|---|---|
> | 大于 | a>b | a.compateTo(b)>0 |
< | 小于 | a<b | a.compateTo(b) |
>= | 大于或等于 | 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") }
输出:
链接:https://www.learnfk.comhttps://www.learnfk.com/kotlin/kotlin-operator.html
来源:LearnFk无涯教程网
b is greater than a. max = 10
赋值运算符“ =”用于为另一个变量赋值。值的分配从右到左进行。
运算符 | 描述 | 表达式 | 对应方法 |
---|---|---|---|
+= | 相加且赋值 | a + = b | a.plusAssign(b) |
-= | 相减且赋值 | 'b | a.minusAssign(b) |
*= | 相乘且赋值 | a * = b | a.timesAssign(b) |
/= | 相除且赋值 | a/= b | a.divAssign(b) |
%= | 取模且赋值 | 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
一元操作员仅使用单个操作数。以下是下面给出的一些一元运算符。
运算符 | 描述 | 表达式 | 对应方法 |
---|---|---|---|
+ | 一元多 | +a | a.unaryPlus() |
- | 一元减 | -a | a.unaryMinus() |
++ | 递增1 | ++a | a.inc() |
- | 减少1 | --a | a.dec() |
! | 非 | !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) and (a>c) |
|| | 逻辑或,表达式只要有一个true,则返回true | (a>b) || (a>c) | (a>b) or(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) | 按位和 | a.and(b) |
or(bits) | 按位或 | a.or(b) |
xor(bits) | 按位异或 | 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
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)