Kotlin의 Nothing 타입
아래의 예제를 통해 Kotlin 내에서 특별하게 취급되는 타입 중 하나인 Nothing 타입에 대해 살펴보도록 하자. 그 전에 알고가야할 것은 아래의 예제 코드 속에서 엘비스 연산자의 우항에 return 문이 대입되어 있다는 점이다.
1 | fun equals(o: Any?): Boolean { |
지금까지 Javascript만 이용하여 개발을 해왔던 나로서는 제일 이해가 안되는 것 중 하나이기도 하다. 어떻게 문이 값처럼 취급 될 수 있는 것인가? 그러던 중 코틀린의 문서에서 코틀린 내에서는 throw 나 return 등의 연산도 식으로 판단한다.
라는 문구를 읽게 되었다. 그렇기 때문에 위의 코드처럼 엘비스 연산자의 우항에 return, throw 등의 연산을 넣을 수 있던 것이다. 위의 예제 코드와 같이 에러에 해당하는 throw의 경우 Nothing이라는 특별한 타입을 가진다.
Nothing 타입
nothing 타입은 “이 함수가 정상적으로 끝나지 않는다“ 라는 걸 명시적으로 표현하는 타입이다. Nothing 타입은 아무런 값도 포함하지 않으므로, 함수의 반환 타입 등에 사용한다.
그 외에는 변수에 아무 값도 저장할 수 없으므로 큰 의미가 없다.
1 | // 6.1.4_3_Nothing_type.kt |
이러한 Nothing 타입은 Nothing 함수를 반환하는 함수가 “정상적으로 종료하지 않음”을 알고 그 함수를 호출하는 함수를 분석할 때 유용하게 사용할 수 있다.
1 | // 6.1.4_3_Nothing_type.kt |
현재 이커머스회사에서 frontend 개발자로 업무를 진행하고 있는 Martin 입니다. 글을 읽으시고 궁금한 점은 댓글 혹은 메일(hoons0131@gmail.com)로 연락해주시면 빠른 회신 드리도록 하겠습니다. 이 외에도 네트워킹에 대해서는 언제나 환영입니다.:Martin(https://github.com/martinYounghoonKim)