Kotlin 스럽게 코드 작성하기

태그
Kotlin
키워드
→ Kotlin

노트

Java 에서 Kotlin 넘어오면 Java 코드 그대로 Koltin을 쓰는 경우가 있다.
  • Kotlin의 1st 객체는 함수다. Java는 익히 알다시피 클래스이고. 여기서 부터 차이점이 다수 존재한다.
  • 함수형과 객체지향, 선언형과 명령형을 적절히 섞어서 쓰자.
  • Kotlin은 멀티 패러다임을 추구하는 언어이다.
Kotlin 에서만 유효할 수 있는 것들이 뭐가 있을지 하나씩 살펴보자.
  • 특이한 연산자들
    • 비트연산은 <<, >> 가 아니다(shl, shr)
    • Elvis Operator
    • 삼항 연산이 없다. 대신 if 문을 expression 으로 쓸 수 있다.
  • Null Check 하기
    • ?
    • !!, 그러나 남용하지 말자 위험하다
  • Companion Obejct
    • 자바의 static 개념과 유사, 그러나 다르다.
    • private 프로퍼티 접근 용이. 팩토리 패턴에 적합
  • 예외 처리하기
    • runCatching은 유용하다
  • Util Function 사용하기
    • apply
      • 보일러플레이트 줄이기 적합
    • with
      • apply 와 같다. 그러나 스코프가 다르다
    • also
      • 객체 초기화와 동시에 쓰기 적합
    • let
      • null 체크시 같이 많이 쓰임
    • run
      • IIFE 처럼 쓸 수 있다
  • Extension Function, property, member
    • 확장함수는 유틸성 클래스의 남용을 줄여준다.
  • Kotlin Collection (Java Stream)
    • Kotlin의 컬렉션과 Java의 스트림은 본질적으로 다음과 같은 몇가지 차이를 지닌다.
      • Kotlin은 불변(immutable)이 기본, Java는 가변(mutable)이 기본
      • kotlin은 항상 지연연산을 한다.
  • 동등성 비교
    • JS랑 비슷하게 동치 비교 연산자가 2개 존재한다.
    • 값을 비교하기 vs 참조 동등성을 비교하기
  • Destructuring declarations
    • JS와 비슷하다. data class 사용시 유용하다.
  • Sealed Class
    • Enum 과 유사하지만 더 유연한 타입 가변성을 제공한다.
  • Infix Function
    • 중위 표기법, kotlin의 map 에서 기본적으로 쓰고 있다.
  • HOC와 Lambda
    • 고차함수의 개념.
  • lateinit 과 by lazy
    • 지연 초기화 방식이 kotlin에는 2가지가 존재
  • Delegated properties
    • 프로퍼티 접근자
  • Type alias
    • 타입스크립트처럼 쓸 수 있다.
    • 참조도 당연히 가능하다.
 
그밖에도 여기담긴 방대한 개념들
  • Coroutine
  • Kotlin DSL (TypeSafeBuilder)
  • reflection
  • ksp (구 kapt, 어노테이션 프로세서)
  • 함수형 프로그래밍
    • 커링
 
참조

요약

📌
요약: 본문이 곧 요약이다.