공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
Operator overloading
코틀린은 타입에 대해 미리 정의된 연산자 집합에 대한 구현을 허용합니다.
이 연산자들에는 고정된 기호('+', '*'같은)와 고정된 우선 순위가 있습니다.
그리고 연산자 구현을 위해 고정된 이름의 멤버 메서드나 확장 메서드를
제공합니다. 즉 연산을 원하는 타입.메서드 처럼 사용하면 됩니다.
Unary operations : 단항 연산
Unary prefix operators : 단항 접두사 연산자
변수 a 가 있을 때
표현 => 변환
+a => a.unaryPlus() // 숫자는 양수로 표현
-a => a.unaryMinus() // 숫자는 음수로 표현
!a => a.not() // 부정
예제)
val a = 10
val b = false
println(+a)
println(-a)
println(!b)
실행결과
Increments and decrements 증가와 감소
표현
a++
++a
a--
--a
예제)
var a = 10
var b = 20
println("a = $a / b = $b")
println("a = ${a++} / b = ${b--}")
println("a = ${++a} / b = ${--b}")
실행 결과
Binary operations : 이항 연산자
산술 연산자
a + b
a - b
a * b
a / b
a % b
a..b
예제)
val a = 10
val b = 4
println("a + b = ${a + b}")
println("a - b = ${a - b}")
println("a * b = ${a * b}")
println("a / b = ${a / b}")
println("a % b = ${a % b}")
println("b..a = ${b..a}")
실행 결과
'in' 연산자
a in b
a !in b
예제)
val a = listOf(1,2,3,4,5)
val b = 4
val c = 6
println("b in a ==> ${b in a}")
println("c in a ==> ${c !in a}")
실행결과
Indexed access operator
a[i]
a[i, j]
a[i_1, .... , i_n]
a[i] = b
a[i, j] = b
a[i_1, ... , i_n] = b
예제)
val a = arrayListOf(1,2,3,4,5)
println(a[1])
a[0] = 10
println(a[0])
실행결과
Augmented assignments
a += b => a = a + b
a -= b => a = a - b
a *= b => a = a * b
a /= b => a = a / b
a %= b => a = a % b
예제)
var a = 10
val b = 2
a += b
println(a)
a = 10
a -= b
println(a)
a = 10
a *= b
println(a)
a = 10
a /= b
println(a)
a = 10
a %= b
println(a)
실행결과
Equality and inequality operators
a == b
a != b
예제)
val a = 10
val b = 2
println("a == b => ${a == b}")
println("a == b => ${a != b}")
실행결과
comparison operators
a > b
a < b
a >= b
a <= b
예제)
val a = 10
val b = 2
println("a > b => ${a > b}")
println("a < b => ${a < b}")
println("a >= b => ${a >= b}")
println("a <= b => ${a <= b}")
실행결과
이상입니다.
다음 포스팅에서는 Null Safety 에 대해 공부합니다.
감사합니다.
'코틀린(Kotlin)' 카테고리의 다른 글
코틀린(kotlin) : Exceptions 예외 Throwable (0) | 2018.02.08 |
---|---|
코틀린(kotlin) : Null Safety 널 세이프티 (2) | 2018.02.08 |
코틀린(kotlin) : this 와 Equality (0) | 2018.02.08 |
코틀린(kotlin) : 타입체크 is 와 캐스팅 as Type Checks and Casts (0) | 2018.02.07 |
코틀린(kotlin) : Ranges 범위 표현 (0) | 2018.02.07 |