[KOTLIN] NULLABLE UNIT 을 리턴하지 말라 (이펙티브코틀린)

2022. 7. 3. 10:21·KOTLIN
728x90

코틀린 Unit, Nothing 타입

//Unit 예시
fun report() {
    // 아무것도 반환하지 않으면 return Unit 이 반환된다.
}

//Nothing 예시
//fail에서 Exception이 발생하면 user는 Nothing 타입이 됨
//Error: Type mismatch: inferred type is "User" but "Nothing?" was expected
var user = if ( isPass() ) 42 else fail("Not Ready")
  • Unit : 함수가 끝났으나 아무 것도 반환하지 않은 경우
  • Nothing : 함수가 끝이 나지 않은 경우

Unit을 리턴하면 안되는 이유

// Unit? 을 이용하는 경우
fun verifyKey(key: String): Unit? = ...
// VerifyKey가 무엇을 반환하는지 예측하기가 어려움
verifyKey(key) ?: return
  • Unit은 unit이나 null을 리턴하기 때문에 Boolean처럼 사용하는 경우가 있음
  • Unit을 Boolean처럼 사용하면 무엇을 반환하는지 예측이 어렵고, 오류가 생겼을대 원인을 찾기가 힘듬 (디버깅이 어려움)
  • 결론은 Unit을 사용할 경우에는 Boolean으로 사용하는 것이 좋고, 기본적으로 Unit을 리턴하거나, 이를 기반으로 연산하는 것은 권장하지 않음
저작자표시

'KOTLIN' 카테고리의 다른 글

[KOTLIN] 타입 파라미터의 섀도잉을 피하라 (이펙티브 코틀린)  (0) 2022.07.10
[KOTLIN] 연산자 오버로드를 할때는 의미에 맞게 사용  (0) 2022.07.03
[KOTLIN] 변수의 스코프 최소화 (이펙티브코틀린)  (0) 2022.06.18
[KOTLIN] CONTEXT / DISPATCHER  (0) 2022.06.15
[KOTLIN] CANCELLATION (취소)  (0) 2022.06.09
'KOTLIN' 카테고리의 다른 글
  • [KOTLIN] 타입 파라미터의 섀도잉을 피하라 (이펙티브 코틀린)
  • [KOTLIN] 연산자 오버로드를 할때는 의미에 맞게 사용
  • [KOTLIN] 변수의 스코프 최소화 (이펙티브코틀린)
  • [KOTLIN] CONTEXT / DISPATCHER
집한구석
집한구석
  • 집한구석
    tgyun615.info
  • 전체
    오늘
    어제
    • 카테고리 (183)
      • JAVA (38)
      • SPRING (15)
      • KOTLIN (23)
      • NETTY (1)
      • DEVOPS (3)
      • DOCKER (7)
      • KUBERNETES (2)
      • JAVASCRIPT (1)
      • SPLUNK (3)
      • ELK (7)
      • KAFKA (2)
      • GO (4)
      • ALGORITHM & DATA STRUCTURE (9)
      • IDE (5)
      • OS (16)
      • NETWORK (14)
      • GCP (2)
      • AWS (2)
      • DATABASE (10)
      • CLEANCODE (7)
      • OTHER (12)
  • 최근 글

  • 태그

    Elk
    클린코드
    ElasticSearch
    프로그래머스
    docker
    이펙티브코틀린
    AWS
    java
    IntelliJ
    코틀린
    go
    자바
    Spring
    JPA
    엘라스틱서치
    SQL
    splunk
    cleancode
    이펙티브 코틀린
    Kafka
  • 링크

    • github
    • linkedin
    • resume
  • hELLO· Designed By 정상우. v4.10.3
집한구석
[KOTLIN] NULLABLE UNIT 을 리턴하지 말라 (이펙티브코틀린)
상단으로

티스토리툴바