안녕하세요 연봉 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
리스트에서 홀수만 추출하여 출력하는 것입니다.
결론
코틀린의 기초 구문에 대해 살펴보았습니다. 코틀린은 자바와 호환되며, 보다 간결하면서도 효율적인 코드를 작성할 수 있습니다. 코틀린으로 더 나은 소프트웨어를 개발해 보세요!
'WebDev' 카테고리의 다른 글
Kotlin에서 함수 및 람다 (0) | 2023.03.26 |
---|---|
코틀린에서의 제어 흐름과 반복문 (0) | 2023.03.26 |
대규모의 소프트웨어 엔지니어를 해고 하더라도 기업은 살아남을 수 있을까? (2) | 2023.03.20 |
Python개발시 자주 만나는 에러와 해결책 모음 (0) | 2023.03.17 |
시니어 개발자 처럼 React를 더 잘 사용하기 위한 5가지 방법 (0) | 2023.03.11 |
댓글