목차
들어가기
Kotlin은 JetBrains에 의해 만들어진 정적 타입 프로그래밍 언어로, Java Virtual Machine (JVM) 상에서 동작합니다. 안드로이드 개발을 비롯한 다양한 애플리케이션 개발에 널리 사용되고 있습니다.
변수 및 데이터 타입
Kotlin에서는 변수를 선언할 때 var 또는 val 키워드를 사용합니다. var는 일반적인 변수를 선언할 때 사용하고, val은 불변(immutable) 변수를 선언할 때 사용합니다.
var x: Int = 10
val name: String = "John"
조건문과 반복문
조건문인 if-else 문과 반복문인 for 루프, while 루프가 Kotlin에서 사용됩니다.
// if-else 문
if (x > 5) {
println("x는 5보다 큽니다")
} else {
println("x는 5보다 작거나 같습니다")
}
// for 루프
for (i in 1..5) {
println(i)
}
// while 루프
var i = 0
while (i < 5) {
println(i)
i++
}
함수와 람다 표현식
Kotlin에서 함수를 정의할 때는 fun 키워드를 사용합니다. 람다 표현식은 { } 안에 파라미터와 함수 본문을 정의하는 방식으로 사용됩니다.
// 함수 정의
fun add(a: Int, b: Int): Int {
return a + b
}
// 람다 표현식
val sum: (Int, Int) -> Int = { a, b -> a + b }
클래스와 객체
클래스와 객체는 Kotlin에서 주요한 개념으로, class 키워드를 사용하여 클래스를 정의하고, object 키워드를 사용하여 싱글톤 객체를 생성합니다.
// 클래스 정의
class Person(val name: String, var age: Int)
// 객체 생성
val person = Person("John", 30)
확장 함수 및 멤버 함수
Kotlin은 기존 클래스에 새로운 함수를 추가할 수 있는 확장 함수를 제공합니다. 또한, 멤버 함수도 일반적으로 사용됩니다.
// 확장 함수
fun String.addHello(): String {
return "Hello, $this"
}
// 멤버 함수
class Person {
fun speak() {
println("Hello!")
}
}
널 안전성
널 안전성은 Kotlin에서 중요한 특징으로, 변수의 값이 null이 될 수 있는지 여부를 명시적으로 표시합니다.
val name: String = "John"
val nullableName: String? = null
코루틴
코루틴은 Kotlin에서 제공하는 비동기 프로그래밍을 위한 라이브러리로, 블로킹되지 않고 비동기 코드를 작성할 수 있게 합니다.
fun fetchData() {
viewModelScope.launch {
val data = fetchDataFromNetwork()
// 비동기 작업 처리
}
}
확장함수
확장함수는 Kotlin에서 기존 클래스의 멤버 함수를 추가하는 데 사용되며, 확장 함수를 통해 라이브러리 클래스에 새로운 함수를 추가할 수 있습니다.
fun String.removeWhitespace(): String {
return this.replace(" ", "")
}
모든 Kotlin 프로그래밍 언어의 기능 및 사용법은 Kotlin 공식 문서에서 확인할 수 있습니다.