Skip to content

Latest commit

 

History

History
143 lines (141 loc) · 3.64 KB

Kotlin.md

File metadata and controls

143 lines (141 loc) · 3.64 KB

Kotlin

자바와 코틀린 차이점

코틀린 : Null에 안전


함수형 프로그래밍이란
  • 함수도 객체로 취급
  • 코드 간략, 재사용성 증가
  • 람다식, 고차함수, 순수함수
  • 모듈화 하므로 디버깅, 테스트 용이
  • 생산성 높다

코틀린 장점
  • 문법이 간결하다
  • 컴파일 타임에 Null을 체크하므로 Null 안전하다
  • JVM을 기반으로 하므로 자바에서 제공하는 Collection을 그대로 사용할수있음

sealed class VS data class

sealed class

  • 하위 클래스의 종류를 제한
  • 객체 생성 불가능
  • 하위 클래스는 class, data class, object 가능
  • when절에서 else문 필요없음
  • sealed의 하위 클래스들은 객체 여러개 생성 가능 → enum은 인스턴스 하나임

data class

  • 데이터만 담기 위한 클래스
  • getter/setter 자동 생성

고차함수 vs 순수함수 vs 일급객체

고차함수

  • 함수를 인자로 전달받거나 함수를 반환하는 함수

순수함수

  • side effect 없음 : 입력이 같으면 출력이 같다

일급객체

  • 함수의 인자로 전달 가능
  • 함수의 반환값에 사용 가능
  • 변수에 담을 수 있음

obejct vs companion object

object

  • 클래스를 정의하면서 객체 생성
  • 상속 가능

companion object

  • 코틀린에는 static 없다
  • 말그대로 동반 객체임
  • 클래스의 private 데이터에 접근 가능

lateinit VS by lazy

lateinit

  • var
  • primitive에 사용 불가능
  • null을 통한 초기화 불가능

by lazy

  • val
  • 기본 synchronized로 동작

let, apply, run, with 차이점