본 글은 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
을 보고 정리한 글입니다.
Java와 달리, Exception을 던질 때 new를 사용하지 않고 예외를 던진다.
// Java Code
private void validateScoreIsNotNegative(int score) {
if (score < 0) {
throw new IllegalArgumentException("0보다 작을 수 없습니다!")
}
}
// Kotlin Code
fun validateScoreIsNotNegative(score: Int) {
if (score < 0) {
throw IllegalArgumentException("0보다 작을 수 없습니다!")
}
}
Java에서 if-else는 Statement이지만, Kotlin에서는 Expression이다.
// Kotlin Code
fun getPassOrFail(score: Int): String {
return if (score >= 50) {
"P"
} else {
"F"
}
}
Kotlin에서는, if부터 else 전체를 한 번에 return 가능하다. if-else는 Expression이기 때문이다. (3항 연산자가 없다.)
in 시작..끝 을 사용하여 특정 범위에 포함되어 있는 지를 파악 가능하다.
// Kotlin Code
fun validate(score: Int) {
if(score !in 0..100) {
throw IllegalArgumentException("score가 0~100 범위를 벗어납니다!")
}
}
Kotlin에서는 switch case문을 when으로 변환 가능하다.
switch(입력변수) {
case 입력값1: ...
break;
case 입력값2: ...
break;
...
default: ...
break;
}
when (값) {
조건부 -> 어떠한 구문
조건부 -> 어떠한 구문
else -> 어떠한 구문
}
fun getGradeSwitch(score: Int): String {
return when (score / 10) {
9 -> "A"
8 -> "B"
7 -> "C"
else -> "D"
}
}
when은 Expression이기 때문에, return으로 반환 가능하며, 바로 숫자를 판별하여 반환 가능하다.
fun getGradeSwitch(score: Int): String {
return when (score / 10) {
in 90..99-> "A"
in 80..89 -> "B"
in 70..79 -> "C"
else -> "D"
}
}
in 숫자..숫자범위를 활용하여, 다양한 분기를 칠 수 있다.
fun startsWithA(obj: Any): Boolean {
return when (obj) {
is String -> obj.startswith("A")
else -> false
}
}
Java에서의 if, InstanceOf 대신, when을 써서 obj가 어떠한 형인지 파악 가능하다.
fun judgeNumber2(number: Int) {
when {
number == 0 -> println("0")
number % 2 == 0 -> println("짝수")
else -> println("다른 숫자")
}
}
여러 조건문도 쉽게 조사할 수 있다.