炫意html5
最早CSS3和HTML5移动技术网站之一

Kotlin 基础教程 – Kotlin 运算符

Kotlin有一组运算符,可以执行算术,赋值,比较运算符等。您将在本文中学习如何使用这些运算符。

运算符是对操作数(变量和值)执行运算的特殊符号(字符)。例如,+ 是执行加法的运算符。

在Kotlin变量文章中,您学习了声明变量并为变量分配值。现在,您将学习使用运算符对它们执行各种操作。

算术运算符

以下是Kotlin中的算术运算符列表:

Kotlin算术运算符
运算符 描述
+ 加法运算符(也用于字符串连接)
减法运算符
* 乘法运算符
/ 除法运算符
求模运算符

示例:算术运算符

fun main(args: Array<String>) {
    val number1 = 12.5
    val number2 = 3.5
    var result: Double
    result = number1 + number2
    println("number1 + number2 = $result")
    result = number1 - number2
    println("number1 - number2 = $result")
    result = number1 * number2
    println("number1 * number2 = $result")
    result = number1 / number2
    println("number1 / number2 = $result")
    result = number1 % number2
    println("number1 % number2 = $result")
}

运行该程序时,输出为:

number1 + number2 = 16.0
number1 - number2 = 9.0
number1 * number2 = 43.75
number1 / number2 = 3.5714285714285716
number1 % number2 = 2.0

+ 运算符,还可用于级联String值,将字符串拼接在一起。

示例:字符串的串联

fun main(args: Array<String>) {
    val start = "Talk is cheap. "
    val middle = "Show me the code. "
    val end = "- Linus Torvalds"
    val result = start + middle + end
    println(result)
}

运行该程序时,输出为:

Talk is cheap. Show me the code. - Linus Torvalds

算术运算符实际上如何工作?

假设您正在使用 + 算术运算符将两个数字a和b相加。

在后台,表达式a + b 调用 a.plus(b) 成员函数。plus运算符被重载以处理 String 值和其他基本数据类型(Char 和 Boolean除外)。

// + 基本类型的运算符
operator fun plus(other: Byte): Int
operator fun plus(other: Short): Int
operator fun plus(other: Int): Int
operator fun plus(other: Long): Long
operator fun plus(other: Float): Float
operator fun plus(other: Double): Double
// 对字符串串联
operator fun String?.plus(other: Any?): String

您还可以使用 + 运算符通过重载plus()函数来处理用户定义的类型(如对象)。

推荐阅读: Kotlin 运算符重载

这是算术运算符及其相应函数的列表:

表达式 函数名称 用法
a + b a.plus(b)
a-b a.minus(b)
a * b a.times(b)
a / b a.div(b)
a%b 求模 a.mod(b)

赋值运算符

赋值运算符用于为变量赋值。我们之前已经使用过简单的 = 赋值运算符。

val age = 5

在此,使用 = 运算符将 5 分配给变量 age。

以下是所有赋值运算符及其对应函数的列表:

表达式 相当于 用法
a + = b a = a + b a.plusAssign(b)
a-= b a = a-b a.minusAssign(b)
a * = b a = a * b a.timesAssign(b)
a / = b a = a / b a.divAssign(b)
a%= b a = a%b a.modAssign(b)

示例:赋值运算符

fun main(args: Array<String>) {
    var number = 12
    number *= 5   // number = number*5
    println("number  = $number")
}

运行该程序时,输出为:

number = 60

一元前缀 和 递增/递减运算符

这是一元运算符,它们的含义和相应功能的表:

运算符 描述 表达式 用法
+ 一元加 +a a.unaryPlus()
一元减 -a a.unaryMinus()
不是(反转值) !a a.not()
++ 递增:值加1 ++a a.inc()
递减:值减1 –a a.dec()

示例:一元运算符

fun main(args: Array<String>) {
    val a = 1
    val b = true
    var c = 1
    var result: Int
    var booleanResult: Boolean
    result = -a
    println("-a = $result")
    booleanResult = !b
    println("!b = $booleanResult")
    --c
    println("--c = $c")
}

运行该程序时,输出为:

-a = -1
!b = false
--c = 0

比较运算符 和 相等运算符

这是一个相等和比较运算符,它们的含义以及相应函数的列表:

运算符 描述 表达式 用法
> 大于 a> b a.compareTo(b)> 0
< 小于 a <b a.compareTo(b)<0
> = 大于 或 等于 a> = b a.compareTo(b)>= 0
<= 小于 或 等于 a <= b a.compareTo(b)<= 0
== 等于 a == b a?.equals(b)?:(b === null)
!= 不等于 a!= b !(a?.equals(b)?:(b ===null))

比较和相等运算符用于控制流,例如:if 表达式when表达式 循环

示例:比较和相等运算符

fun main(args: Array<String>) {
    val a = -12
    val b = 12
    //使用大于运算符
    val max = if (a > b) {
        println("a大于b")
        a
    } else {
        println("b大于a")
        b
    }
    println("max = $max")
}

运行该程序时,输出为:

b大于a
max = 12

逻辑运算符

Kotlin中有两个逻辑运算符:|| 和 &&

这是逻辑运算符,它们的含义和相应函数的表。

运算符 描述 表达式 对应函数
|| 如果任一布尔表达式为true,则为true (a>b)||(a<c) (a>b)or(a<c)
&& 如果所有布尔表达式均为true,则为true (a>b)&&(a<c) (a>b)and(a<c)

请注意,or 和 and 是支持中缀表示法的函数。

逻辑运算符用于控制流,例如 if表达式when表达式 循环

示例:逻辑运算符

fun main(args: Array<String>) {
    val a = 10
    val b = 9
    val c = -1
    val result: Boolean
    // result 为 true 是最大
    result = (a>b) && (a>c) // result = (a>b) and (a>c)
    println(result)
}

运行该程序时,输出为:

true

in 运算符

in运算符用于检查一个对象是否属于一个集合。

运算符 表达式 用法
in a in b b.contains(a)
!in a !in b !b.contains(a)

示例:in 运算符

fun main(args: Array<String>) {
    val numbers = intArrayOf(1, 4, 42, -3)
    if (4 in numbers) {
        println("numbers 数组包含 4.")
    }
}

运行该程序时,输出为:

numbers 数组包含  4.

索引访问运算符

以下是在Kotlin中使用带有相应函数的索引访问运算符的一些表达式。

表达 用法
a[i] a.get(i)
a[i, n] a.get(i, n)
a[i1, i2, …, in] a.get(i1, i2, …, in)
a[i] = b a.set(i, b)
a[i, n] = b a.set(i, n, b)
a[i1, i2, …, in] = b a.set(i1, i2, …, in, b)

示例:索引访问运算符

fun main(args: Array<String>) {
    val a  = intArrayOf(1, 2, 3, 4, - 1)
    println(a[1])   
    a[1]= 12
    println(a[1])
}

运行该程序时,输出为:

2
12

invoke 运算符

以下是Kotlin中使用带有相应函数的invoke运算符的一些表达式。

表达 翻译成
a() a.invoke()
a(i) a.invoke(i)
a(i1, i2, …, in) a.inkove(i1, i2, …, in)
a[i] = b a.set(i, b)

在Kotlin中,括号被转换为调用invoke成员函数。

按位运算

与Java不同,Kotlin中没有按位和移位运算符。为了执行这些任务,使用了各种功能(支持中缀符号):

  • shl – 签名左移

  • shr – 右移签名

  • ushr – 无符号右移

  • and – 按位与

  • or – 按位或

  • xor – 按位异或

  • inv – 按位反

访问此页面以了解有关Kotlin中按位运算更多信息。

另外,与Java不同,Kotlin中没有三元运算符。

炫意HTML5 » Kotlin 基础教程 – Kotlin 运算符

Java基础教程Android基础教程