요즘 널체크를 보며 생각한건데

널러블 타입을 널체크 해주면 그 이후부턴 NonNull 로 동작하는 언어들이 많잖아?

ex) kotlin
val a : String? = foo()
if (a != null) {
    // a => Not null
}


이걸 극한으로 사용해보는거임

예를 들면 이런 코드가 가능할거 같음

10 / a // 컴파일 에러: 0으로 나눌 수 없습니다
if (a != 0) 10 / a // 컴파일 에러 X


list().first() // 컴파일 에러: 비어있는 리스트에선 first 사용 불가
if (list.isNotEmpty) list.first() // 컴파일 에러 X