자바와는 다른 코틀린의 핵심 문법들을 정리해둔 글입니다.
변수 선언
class Example {
// 변수 선언
// var는 변수임을 선언
// mutable = 변수명
// Int: 타입
// 1 = 값
var mutable: Int = 1
// 상수 선언
// val = 상수임을 선언
val immutable: String = "hello"
// 타입을 명시하지 않으면 값으로부터 타입을 추론한다
val typeInference = 1.23 // Double로 추론
}
함수 선언
// 함수는 'fun' 키워드를 사용한다
fun funcName(value: Int) { // 파라미터 뒤에 어떤 타입인지 명시한다
println(value)
}
// 반환 타입이 명시된 함수
fun returnString(value: String): String { // String을 반환하도록 명시되어 있다
return value
}
if 표현식
코틀린은 자바의 삼항 연산자 대신 if로 표현식을 사용합니다.
자바의 삼항 연산자:
// 음수인지 여부를 출력하는 함수
void checkNegative(int num) {
System.out.println(num < 0 ? "음수입니다." : "음수가 아닙니다.");
}
코틀린의 if 표현식:
// 음수인지 여부를 출력하는 함수
fun checkNegative(num: Int) {
println(if (num < 0) "음수입니다." else "음수가 아닙니다.")
}
when 문
자바의 switch문과 비슷한 역할을 합니다.
자바의 switch문
void toKorean(String word) {
switch (word) {
case "rock":
System.out.println("바위");
break;
case "paper":
System.out.println("보");
break;
case "scissors":
System.out.println("가위");
break;
default:
System.out.println("오류");
}
}
코틀린의 when 문:
fun toKorean(word: String) {
when (word) {
"rock" -> println("바위")
"paper" -> println("보")
"scissors" -> println("가위")
else -> println("오류")
}
}
- when문은 switch문처럼 사용하는 방식 외에도 다양한 방법으로 활용이 가능한 문법입니다.
추후에 다뤄보도록 하겠습니다.
try...catch문
코틀린에서는 변수에 값을 할당할 때 try...catch문을 사용할 수 있습니다.
val number: Int = try {
Integer.parseInt("123") // 파싱이 성공하여 123이 number에 할당됨
} catch (e: NumberFormatException) {
-1
}
val wrongNumber: Int = try {
Integer.parseInt("ㅋㅋㅋ") // NumberFormatException 발생하여 catch문으로 넘어감
} catch (e: NumberFormatException) {
-1 // 최종적으로 number에 -1이 할당됨
}
범위 표현식
for문으로 "안녕"을 10번 출력하려고 할 때 자바는 아래와 같이 작성해야 합니다.
for (int i = 0; i < 10; i++) {
System.out.println("안녕");
}
코틀린에서는 숫자 range 문법으로 아래와 같이 간결하게 작성할 수 있습니다.
for (i in 1..10) {
println("안녕")
}
- 범위 표현식은 처음 값과 마지막 값을 포함합니다.
- 즉 1..10 은 1, 2, 3, 4, 5, 6, 7, 8, 9, 10입니다.
다양한 범위 표현식:
// 1, 3, 5, 7, 9
1..10 step 2
// 10, 8, 6, 4, 2
10 downTo 1 step 2
// 1, 2, 3, 4, 5, 6, 7, 8, 9
1 until 10