Kotlin 运算符
运算符是对操作数执行不同操作的特殊符号。例如 + 和 - 是分别执行加法和减法的运算符。与Java一样,Kotlin 包含不同种类的运算符。
- 算术运算运算符
- 关系运算符
- 赋值运算符
- 一元运算符
- 逻辑运算符
- 位运算符
算术运算符 – Operators Meaning Expression Translate to + Addition a + b a.plus(b) – Subtraction a – b a.minus(b) * Multiplication a * b a.times(b) / Division a / b a.div(b) % Modulus a % b a.rem(b)
Kotlin
fun main(args: Array)
{
var a = 20 var b = 4 println("a + b = " + (a + b))
println("a - b = " + (a - b))
println("a * b = " + (a.times(b)))
println("a / b = " + (a / b))
println("a % b = " + (a.rem(b)))
}
Kotlin
fun main(args: Array)
{
var c = 30
var d = 40
println("c > d = "+(c>d))
println("c < d = "+(c.compareTo(d) < 0))
println("c >= d = "+(c>=d))
println("c <= d = "+(c.compareTo(d) <= 0))
println("c == d = "+(c==d))
println("c != d = "+(!(c?.equals(d) ?: (d === null))))
}
Kotlin
fun main(args : Array){
var a = 10
var b = 5
a+=b
println(a)
a-=b
println(a)
a*=b
println(a)
a/=b
println(a)
a%=b
println(a)
}
Kotlin
fun main(args : Array){
var e=10
var flag = true
println("First print then increment: "+ e++)
println("First increment then print: "+ ++e)
println("First print then decrement: "+ e--)
println("First decrement then print: "+ --e)
}
Kotlin
fun main(args : Array){
var x = 100
var y = 25
var z = 10
var result = false
if(x > y && x > z)
println(x)
if(x < y || x > z)
println(y)
if( result.not())
println("Logical operators")
}
Kotlin
fun main(args: Array)
{
println("5 signed shift left by 1 bit: " + 5.shl(1))
println("10 signed shift right by 2 bits: : " + 10.shr(2))
println("12 unsigned shift right by 2 bits: " + 12.ushr(2))
println("36 bitwise and 22: " + 36.and(22))
println("36 bitwise or 22: " + 36.or(22))
println("36 bitwise xor 22: " + 36.xor(22))
println("14 bitwise inverse is: " + 14.inv())
}
输出:
a + b = 24
a - b = 16
a * b = 80
a / b = 5
a % b = 0
关系运算符 –
Operators | Meaning | Expression | Translate to |
---|---|---|---|
> | greater than | a > b | a.compareTo(b) > 0 |
< | less than | a < b | a.compareTo(b) < 0 |
>= | greater than or equal to | a >= b | a.compareTo(b) >= 0 |
<= | less than or equal to | a <= b | a.compareTo(b) <= 0 |
== | is equal to | a == b | a?.equals(b) ?: (b === null) |
!= | not equal to | a != b | !(a?.equals(b) ?: (b === null)) > 0 |
科特林
fun main(args: Array)
{
var c = 30
var d = 40
println("c > d = "+(c>d))
println("c < d = "+(c.compareTo(d) < 0))
println("c >= d = "+(c>=d))
println("c <= d = "+(c.compareTo(d) <= 0))
println("c == d = "+(c==d))
println("c != d = "+(!(c?.equals(d) ?: (d === null))))
}
输出:
c > d = false
c < d = true
c >= d = false
c <= d = true
c == d = false
c != d = true
赋值运算符 – Operators Expression Translate to += a = a + b a.plusAssign(b) > 0 -= a = a – b a.minusAssign(b) < 0 *= a = a * b a.timesAssign(b)>= 0 /= a = a / b a.divAssign(b) <= 0 %= a = a % b a.remAssign(b)
科特林
fun main(args : Array){
var a = 10
var b = 5
a+=b
println(a)
a-=b
println(a)
a*=b
println(a)
a/=b
println(a)
a%=b
println(a)
}
输出:
15
10
50
10
0
一元运算符 – Operators Expression Translate to ++ ++a or a++ a.inc() — –a or a– a.dec()
科特林
fun main(args : Array){
var e=10
var flag = true
println("First print then increment: "+ e++)
println("First increment then print: "+ ++e)
println("First print then decrement: "+ e--)
println("First decrement then print: "+ --e)
}
输出:
First print then increment: 10
First increment then print: 12
First print then decrement: 12
First decrement then print: 10
逻辑运算符 – Operators Meaning Expression && return true if all expressions are true (a>b) && (a>c) || return true if any of expression is true (a>b) || (a>c) ! return complement of the expression a.not()
科特林
fun main(args : Array){
var x = 100
var y = 25
var z = 10
var result = false
if(x > y && x > z)
println(x)
if(x < y || x > z)
println(y)
if( result.not())
println("Logical operators")
}
输出:
100
25
Logical operators
位运算符 – Operators Meaning Expression shl signed shift left a.shl(b) shr signed shift right a.shr(b) ushr unsigned shift right a.ushr() and bitwise and a.and(b) or bitwise or a.or() xor bitwise xor a.xor() inv bitwise inverse a.inv()
科特林
fun main(args: Array)
{
println("5 signed shift left by 1 bit: " + 5.shl(1))
println("10 signed shift right by 2 bits: : " + 10.shr(2))
println("12 unsigned shift right by 2 bits: " + 12.ushr(2))
println("36 bitwise and 22: " + 36.and(22))
println("36 bitwise or 22: " + 36.or(22))
println("36 bitwise xor 22: " + 36.xor(22))
println("14 bitwise inverse is: " + 14.inv())
}
输出:
5 signed shift left by 1 bit: 10
10 signed shift right by 2 bits: : 2
12 unsigned shift right by 2 bits: 3
36 bitwise and 22: 4
36 bitwise or 22: 54
36 bitwise xor 22: 50
14 bitwise inverse is: -15