- 코틀린 언어의 특성
data class Person(
val name: String,
val age: Int? = null
)
fun main(){
val persons = listOf(
Person("영희", age = 29),
Person("철수"),
)
val oldest = persons.maxBy{
it.age ?: 0
}
println("가장 나이가 많은 사람: $oldest")
}
- 클래스 본문을 지정하지 않고도 프로퍼티가 포함된 Person이라는 데이터 클래스를 정의한다.
- val 키워드를 사용해 읽기 전용 프로퍼티를 선언한다.
- 인자의 기본값을 제공한다.
- 타입 시스템을 통해 널이 될 수 있는 값들(Int?)을 명시적으로 다룸으로써 NPE를 피한다.
- 클래스 안에 포함될 필요가 없는 최상위 함수를 정의한다.
- 함수나 생성자를 호출할 때 파라미터 이름을 지정한 인자를 사용한다.
- 트레일링 콤마를 사용한다.
- 람다식을 사용해 컬렉션 연산을 활용한다.
- 엘비스 연산자(?:) 를 사용해 변수가 null일 때에 대비한 값을 제공한다.
- 수동으로 문자열을 연결하는 대신, 문자열 템플릿을 사용한다.
- 데이터 클래스를 위해 컴파일러가 자동으로 생성해주는 toString 같은 함수를 사용한다.
- 코틀린의 주요 특성
- 코틀린 용례: 안드로이드, 서버, 자바가 실행되는 모든 곳, 그 외의 용도
- 정적 타입 지정으로 인해 코틀린 성능, 신뢰성, 유지 보수성이 모두 좋아진다.
- 타입추론을 하지만 컴파일 시점에서 타입이 정해져 있다.
- 함수형 프로그래밍과 객체지향 프로그래밍의 조합이 코틀린을 안전하고 유연하게 한다.
- 코드 중복을 피할 수 있다.
- 안전한 동시성
- 테스트하기 쉽다.
- 코루틴을 쓰면 동시성, 비동기 코드를 자연스럽고 구조적으로 사용할 수 있다.
- 코틀린을 모든 목적에 사용할 수 있다. 코틀린은 오픈소스이며, 여러분의 참여를 환영한다.
- 코틀린이 자주 쓰이는 분야
- 백엔드지원: 코틀린 서버 프로그래밍
- 모바일 개발: 안드로이드는 코틀린 우선이다.
- 다중 플랫폼: IOS, JVM, JS 및 그 외의 플랫폼에서 비즈니스 로직을 공유하고 코드 중복을 최소화하기
- 코틀린의 철학
- 코틀린은 실용적인 언어다
- 코틀린은 간결하다
- 코틀린은 안전하다
- 코틀린은 상호운용성이 좋다
- 코틀린 도구 사용
- 코틀린 코드 설정과 실행
- 코틀린 온라인 놀이터
- IDE 플러그인
- 자바 - 코틀린 변환기
- 코틀린 코드 컴파일