본문 바로가기
WebDev

코틀린(Kotlin) 기초 구문

by dev-woo 2023. 3. 26.
반응형

안녕하세요 연봉 1억 개발자 dev-woo 입니다. 코틀린의 기초 구문에 대해서 알아보겠습니다.

 

코틀린(Kotlin)은 JVM 언어 중 하나로, 자바와 100% 호환되는 객체지향 프로그래밍 언어입니다. 이 글에서는 코틀린의 기초 구문에 대해 살펴보겠습니다.

변수(Variables)

변수 선언하기

코틀린에서 변수를 선언할 때에는 var 혹은 val 키워드를 사용합니다. var 키워드는 값이 변경 가능하다는 뜻이며, val은 값이 변경 불가능하다는 뜻입니다.

var age: Int = 27
val name: String = "John"

변수의 타입은 : 타입 형태로 명시할 수 있습니다. 만약 변수의 타입을 명시하지 않으면 코틀린 컴파일러가 변수의 값으로부터 타입을 추론합니다.

val pi = 3.14 // Double 형

널(null) 가능 타입(Nullable Types)

코틀린에서 변수는 기본적으로 널(null)이 될 수 없습니다. 만약 변수가 널이 될 수 있다면, 타입 뒤에 ? 기호를 붙여야 합니다.

var nullableString: String? = null

늦은 초기화(Late-Initialized Properties)

Java의 경우 클래스의 멤버 변수를 초기화하려면 생성자에서 값을 할당해야 합니다. 코틀린에서도 마찬가지로 클래스의 프로퍼티를 초기화하는 것이 좋지만, 때때로 나중에 초기화할 필요가 있을 때가 있습니다. 이 때에는 lateinit 키워드를 사용합니다.

lateinit var myObject: MyClass

또한, lateinit 키워드는 널(null)이 될 수 없는 타입에서만 사용할 수 있습니다.

함수(Functions)

함수 선언하기

코틀린에서 함수를 선언할 때에는 fun 키워드를 사용합니다.

fun sum(a: Int, b: Int): Int {
    return a + b
}

함수의 반환 타입은 : 반환타입 형태로 명시할 수 있습니다. 만약 반환 타입을 명시하지 않으면, 코틀린 컴파일러가 자동으로 반환 타입을 추론합니다.

fun sayHello(name: String) = "Hello, $name!"

기본 매개변수(Default Parameters)

코틀린에서는 함수의 매개변수에 기본 값을 지정해 줄 수 있습니다.

fun greet(name: String, message: String = "Hello") {
    println("$message, $name!")
}

greet("John") // "Hello, John!"
greet("Mary", "Hi") // "Hi, Mary!"

가변인자(Varargs)

코틀린에서 함수의 인자로 가변인자를 받으려면 매개변수 앞에 vararg 키워드를 붙입니다.

fun sum(vararg numbers: Int): Int {
    return numbers.sum()
}

sum(1, 2, 3) // 6

클래스(Classes)

클래스 선언하기

코틀린에서 클래스를 선언할 때에는 class 키워드를 사용합니다.

class Person(var name: String, var age: Int)

위 코드는 이름과 나이를 가진 Person 클래스를 선언하는 예시입니다. 주 생성자를 함께 선언해주는 것이 좋습니다.

상속(Inheritance)

코틀린에서 클래스를 상속받으려면 클래스 이름 뒤에 콜론(:)을 붙이고 상속받을 클래스의 이름을 쓰면 됩니다.

open class Animal(var name: String)

class Dog(name: String, var breed: String): Animal(name)

위 예시는 이름과 품종을 가진 Dog 클래스를 선언하는 것입니다. Dog 클래스는 Animal 클래스를 상속받고 있습니다.

추상클래스(Abstract Classes)

코틀린에서는 추상 클래스를 선언할 때 abstract 키워드를 사용합니다.

abstract class Vehicle {
    abstract fun honk()
}

class Car: Vehicle() {
    override fun honk() {
        println("Beep beep!")
    }
}

확장함수(Extension Functions)

코틀린에서는 클래스의 기능을 확장하는 확장함수를 선언할 수 있습니다. 확장 함수를 선언하려면 함수 이름 앞에 클래스이름. 을 붙입니다.

fun String.lastChar(): Char {
    return this[this.length - 1]
}

"Hello".lastChar() // 'o'

위 예시에서 lastChar() 함수는 String 클래스에 확장함수로 추가된 것입니다.

람다식(Lambda Expressions)

코틀린에서는 람다식을 선언할 때 ->{} 형태를 사용합니다.

val numbers = listOf(1, 2, 3, 4, 5)

val oddNumbers = numbers.filter { it % 2 != 0 }

println(oddNumbers) // [1, 3, 5]

위 예시에서는 numbers 리스트에서 홀수만 추출하여 출력하는 것입니다.

결론

코틀린의 기초 구문에 대해 살펴보았습니다. 코틀린은 자바와 호환되며, 보다 간결하면서도 효율적인 코드를 작성할 수 있습니다. 코틀린으로 더 나은 소프트웨어를 개발해 보세요!

반응형

댓글