English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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除外)。
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 - b |
субтракция | a * b | умножение |
a * b | a / 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 //Использование оператора greater than val max = if (a > b) { println("a больше b") a } else { println("b больше a") b } println("max = $max") }
При запуске программы выводом будет:
b больше a max = 12
В Kotlin есть два логических оператора: || и &&
Это логические операторы, их значения и соответствующие функции таблицы.
Оператор | Описание | Выражение | Соответствующие функции |
---|---|---|---|
|| | Если хотя бы одно булевое выражение истинно, то результат true | (a>b)||(a<c) | (a>b)or(a<c) |
&& | Если все булевы выражения истинны, то результат true | (a>b)&&(a<c) | (a>b)and(a<c) |
Обратите внимание, что or и and поддерживают инFIX-представление.
Логические операторы используются для управления потоком, например выражение 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 | a in b | b.contains(a) |
!in | a !in b | !b.contains(a) |
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.
выражение | Перевод на |
---|---|
a() | a.invoke() |
a(i) | a.invoke(i) |
a(i1, i2, ..., in) | a.invoke(i1, i2, ..., in) |
a[i] = b | a.set(i, b) |
В Kotlin скобки преобразуются в вызов члена функции invoke.
В отличие от Java, в Kotlin нет битовых и носных операций. Для выполнения этих задач используются различные функции (поддержка инфиксных символов):
shl - левое носное с подписью
shr - правое носное с подписью
ushr - беззнаковое右оносное
and - битовое И
or - битовое ИЛИ
xor - битовое исключающее ИЛИ
inv - обратное битовое
Перейдите на эту страницу, чтобы узнать оБитовые операции в KotlinБолее подробная информация.
Кроме того, в Kotlin, в отличие от Java, нет三元 оператора.