내가 코틀린을 배우면서 코틀린에 있어 특별하다고 생각되는 부분들 또는 메모해두어야 할 점들을 여기에 적어놓으려고 한다.
단일 표현식 함수
단일 표현식 함수 (Single-Expression Function) 는 간단한 함수들의 반환값을 마치 변수에 결과값을 할당하듯 식을 할당하여 만든다. 또한 이 경우 반환형의 타입추론이 가능하므로, 반환형 또한 생략이 가능하다. 자바스크립트의 화살표 함수와 비슷하게 사용할 수 있다.
예시
fun main() {
println(add(1,2))
}
fun add(a: Int, b: Int) = a + b;
출력
3
is 연산자
코틀린에는 자료형을 확인할 수 있는 is 연산자가 있다. 따라서 같은 is이지만 파이썬의 is와는 쓰임이 다르다. 가령 아래와 같이 사용할 수 있다.
예시
fun main() {
var a: Int = 5
if (a is Int) println("a is Int!");
}
출력
a is Int!
when 문
when은 다중 조건문으로, 다른 언어에서 지원하는 switch문을 좀 더 편리하게 바꾼 기능이다. when은 하나의 변수를 여러 값과 비교할 수 있다는 장점이 있다. 아래와 같이 변수가 어떤 값과 같은 값을 가진다면 어떠한 구문을 실행하라는 것을 중간에 화살표 (->) 를 넣어 표현할 수 있다.
예시
fun main() {
println(doWhen("beom"))
println(doWhen("seok"))
println(doWhen("somebody else"))
}
fun doWhen (a: String): String {
when (a) {
"beom" -> return "hi beom"
"seok" -> return "hi seok"
else -> return "you are not beom seok"
}
}
출력
hi beom
hi seok
you are not beom seok
for 문
코틀린에서의 for 문은 최신 언어들이 제공하고 있는 좀 더 이해하기 쉬운 형태로 사용이 가능하다. 예를 들어, 괄호 안에 index로 사용할 변수명을 i로 다음과 같이 지정하고, 0..4로 0 부터 4 까지 반복하여 반복문을 실행시키자.
예시
fun main() {
for (i in 0..4) {
println(i)
}
}
출력
0
1
2
3
4
이 경우 증가값은 기본적으로 1이다. 그러나 증가값이 1이 아닌 다른 증가값을 가지기를 원하는 경우도 있을 것이다. 이 경우에는 step 연산자를 사용하면 된다.
예시
fun main() {
for (i in 0..9 step 2) {
println(i)
}
}
출력
0
2
4
6
8
시작값부터 시작하여 2의 차이로 수가 늘어나기 때문에 9가 포함이 되지 않는다.
감소하며 반복하는 방법도 있다. 이 경우에는 ..이 아닌 downTo를 사용한다.
예시
fun main() {
for (i in 4 downTo 0) {
println(i)
}
}
출력
4
3
2
1
0
아래와 같은 방식으로 이미 배열이 존재한다면 배열의 요소들을 순차적으로 0번째부터 n-1번째까지 참조하여 사용하는 방법도 있다.
예시
fun main() {
var arr = arrayOf(1, 3, 5, 7, 9)
for (i in arr) {
println(i)
}
}
출력
1
3
5
7
9
반복문의 종료
반복문의 종료는 break를 통해서 할 수 있다. break를 사용하면 해당 반복문의 반복이 즉시 종료되는데, 문제는 여러 반복문이 중첩으로 사용되었을 때이다. 가령 하나의 for loop 안에서 i 를 0부터 9까지 반복시키고 다른 하나의 for loop 안에서 j를 0부터 9까지 반복시키는데 만약 i가 3이고 j가 4일 때 모든 반복문을 즉시 종료시켜야 한다면, 안쪽에 있는 반복문을 먼저 종료시킨 후, 바깥쪽에 있는 반복문을 다른 조건문을 사용하여 종료시켜야 한다는 단점이 있다. 이로 인해 코드가 복잡해질 수 있는데, 코틀린에서는 반복문에 레이블을 추가함으로써 레이블이 달린 반복문을 기준으로 즉시 break를 할 수 있다. continue 또한 마찬가지로 적용시킬 수 있다.
예시
fun main() {
loop1@for (i in 0..9) {
for (j in 0..9) {
println("$i,$j")
if (i == 0 && j == 3) {
break@loop1
}
}
}
}
출력
0,0
0,1
0,2
0,3
출처
https://www.youtube.com/playlist?list=PLQdnHjXZyYadiw5aV3p6DwUdXV2bZuhlN
'Kotlin > Basic' 카테고리의 다른 글
Kotlin - 제너릭 (Generic) (0) | 2021.05.22 |
---|---|
Kotlin - 클래스의 다형성 (Polymorphism) (0) | 2021.05.22 |
Kotlin - 고차함수와 스코프함수 (Higher Order Function and Scope Function) (0) | 2021.05.21 |
Kotlin - 클래스 (Class) (0) | 2021.05.21 |
Kotlin - 변수와 타입 (Variable and Data Type) (0) | 2021.05.21 |