#8 코틀린 연산자
산술 연산자
표기 |
함수 |
의미 |
a + b |
a.puls(b) |
a와 b의 값을 더한다. |
a - b |
a.minus(b) |
a의 값에서 b의 값을 뺀다. |
a * b |
a.times(b) |
a의 값과 b의 값을 곱한다. |
a / b |
a.div(b) |
a의 값을 b의 값으로 나눈다. |
a % b |
a.rem(b), a.mod(b) |
a의 값을 b의 값으로 나눈 후 나머지를 구한다. |
단항 연산자
표기 |
함수 |
의미 |
+a |
a.unaryPlus() |
a의 값을 양수로 변환 |
-a |
a.unaryMinus() |
a의 값을 음수로 변환 |
!a |
a.not() |
Boolean 타입의 부정(true는 false로, false는 true로) |
++a, a++ |
inc |
a의 값에 1을 더함 |
--a, a-- |
dec |
a의 값에서 1을 뺌 |
복합 대입 연산자
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) |
a의 값을 b의 값으로 나눈 후 나머지 a에 넣음 |
비트 연산자
함수명 |
의미 |
shl |
부호 비트는 그대로 두고 왼쪽으로 비트 이동(Signed shitf left) |
shr |
부호 비트는 그대로 두고 오른쪽으로 비트 이동(Signed shift right) |
ushr |
부호 비트를 포함해서 오른쪽으로 비트 이동 |
and |
대응 되는 각 비트에 대해 논리 and 연산 수행 |
or |
대응 되는 각 비트에 대해 논리 or 연산 수행 |
xor |
대응 되는 각 비트에 대해 논리 xor 연산 수행 |
inv |
0또는 1의 비트 값을 반대로 바꿈 |
논리 연산자
함수명 |
의미 |
and |
좌우의 피 연산자에 대해 논리 and 연산 수행 |
or |
좌우의 피 연산자에 대해 논리 or 연산 수행 |
not |
좌우의 피 연산자에 대해 논리 not 연산 수행 |
In 연산자
표기 |
함수 |
a in b |
b.contains(a) |
a !in b |
!b.contains(a) |
.. 연산자
표기 |
함수 |
의미 |
a..b |
a.rangeTo(b) |
a 부터 b 까지의 범위 값 생성 |
is !is 연산자
의미 |
|
if(a is String) |
a의 타입이 String인지 확인 |
?. 연산자
의미 |
|
println(a?.length) |
a가 null이 아닐때 a의 길이를 출력 |
?: 연산자
의미 |
|
val a = b?.length ?: 0 |
b가 null이 아니면 b의 길이를 null이면 0을 a에 대입 |
as, as? 연산자
as |
객체의 타입 변환을 할때 사용 |
as? |
ClassCastException시 null값을 반환 |