🟠 Kotlin 치트시트
JVM과 Android 개발을 위한 현대적 언어
기본 문법
변수 선언
var name = "Kotlin"
val age = 25
var isActive = true
val maxSize: Int = 1000
조건문
if (condition) {
statement
} else if (otherCondition) {
otherStatement
} else {
defaultStatement
}
반복문
for (i in 0 until 10) {
println(i)
}
for (item in items) {
println(item)
}
함수 정의
fun add(a: Int, b: Int): Int {
return a + b
}
fun greet(name: String) {
println("Hello, $name!")
}
클래스와 객체
클래스
class Person(val name: String, var age: Int) {
fun greet(): String {
return "Hello, I'm $name"
}
fun haveBirthday() {
age++
}
}
데이터 클래스
data class User(
val id: Int,
val name: String,
val email: String
)
val user = User(1, "Alice", "alice@example.com")
val (id, name, email) = user // 구조 분해
인터페이스
interface Drawable {
fun draw()
}
class Circle(private val radius: Double) : Drawable {
override fun draw() {
println("Drawing a circle with radius $radius")
}
}
확장 함수
fun String.isEmail(): Boolean {
return this.contains("@") && this.contains(".")
}
val email = "user@example.com"
val isValid = email.isEmail()
null 안전성
null 허용 타입
var nullableName: String? = "John"
var nonNullName: String = "Jane"
nullableName = null // OK
// nonNullName = null // 컴파일 에러!
안전한 호출
val length = nullableName?.length
val upperCase = nullableName?.uppercase()
엘비스 연산자
val name = nullableName ?: "Unknown"
val length = nullableName?.length ?: 0
let 함수
nullableName?.let { name ->
println("Name is $name")
println("Length is ${name.length}")
}