contract

코틀린/문법및 라이브러리

[Kotlin] Contract 로 스마트 케스팅

오늘은 함수들을 열어보다 처음 보는 예약어를 발견했습니다. contract { returns() implies value } 그렇기에 오늘은 이 예약어들을 알아볼까 합니다. Contract의 기능 fun String?.isNotNull(): Boolean = this != null fun foo(s: String?) { if (s != null) s.length if (s.isNotNull()) s?.length // No smartcast :( } 공식문서에서는 contact가 기존의 스마트케스팅을 할 때 해당 스코프를 나가게 될 경우 스마트 캐스팅이 되지 않았던 점이 있었습니다. 그래서 코틀린은 1.3 버전부터 해당기능을 지원하는 contract 함수를 이용할 수 있게 되었습니다. 이 함수의 장점은 ..

감자씨앗
'contract' 태그의 글 목록