English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

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 值和其他基本数据类型(CharBoolean除外)。

// + 基本类型的运算符
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 + ba.plus(b)
a-ba.minus(b)
a * b
a.times(b)
a / b
a.div(b)
a%b求模a.mod(b)

赋值运算符

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

val age = 5

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

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

표현식相当于사용법
a + = ba = a + ba.plusAssign(b)
a-= ba = a-ba.minusAssign(b)
a * = ba = a * ba.timesAssign(b)
a / = ba = a / ba.divAssign(b)
a%= ba = a%ba.modAssign(b)

예제: 할당 연산자

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

프로그램을 실행할 때, 출력은 다음과 같습니다:

number = 60

일원 접두사 및 증가/감소 연산자

이것은 일원 연산자로, 그 의미와 해당 기능 목록입니다:

연산자설명표현식사용법
+일원 증가+aa.unaryPlus()
-일원 감소-aa.unaryMinus()
아니요(값 반전)!aa.not()
++증가: 값 증가1++aa.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> ba.compareTo(b) > 0
<소수a <ba.compareTo(b) < 0
> =대수 또는 같다a> = ba.compareTo(b) >= 0
<=소수 또는 같다a <= ba.compareTo(b) <= 0
==같다a == ba?.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 bb.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] = ba.set(i, b)
a[i, n] = ba.set(i, n, b)
a[i1, i2, ..., in] = ba.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] = ba.set(i, b)

Kotlin에서는 괄호가 invoke 멤버 함수 호출로 변환됩니다.

비트 연산

Java와 달리, Kotlin에는 비트와 이동 연산자가 없습니다. 이 작업을 수행하기 위해 다양한 기능(중간 기호 지원)이 사용됩니다:

  • shl - 시그니처 왼쪽 이동

  • shr - 시그니처 오른쪽 이동

  • ushr - 아니오 표시 비트 오른쪽 이동

  • and - 비트 앤드

  • or - 비트 또는

  • xor - 비트 이퀄

  • inv - 비트 반전

이 페이지에 접근하여 관련 정보를 확인하세요Kotlin에서 비트 연산더 많은 정보.

그리고 Java와 달리, Kotlin에는 삼항 연산자가 없습니다.