`NIL` — 공(空) 타입
NIL — 공(空) 타입
커먼 리스프에는 아무 객체도 담지 않는 타입이 있어요. 이름만 들으면 "비어 있는 값"인 nil을 떠올리기 쉬운데, 여기서 다루는 nil 타입은 그 값 nil과는 다른 개념이에요. 둘을 헷갈리지 않는 게 중요해요.
본문
슈퍼타입
모든 타입 (all types)
설명
nil 타입은 어떤 객체도 포함하지 않아서 빈 타입(empty type) 이라고도 불러요. 객체가 전혀 없으니까 모든 타입의 서브타입(subtype)이 되고, 어느 객체도 nil 타입에 속하지 않아요.
nil로는 어떤 객체도 만들 수 없다 보니, 이 타입은 주로 타입 추론이나 정적 분석에서 "이 타입의 값은 존재할 수 없다"는 사실을 표현할 때 쓰여요.
주의
여기서 헷갈리기 쉬운 점 하나를 짚고 갈게요. 값 nil을 담는 타입은 nil 타입이 아니라 null 타입이에요. 즉 "빈 리스트이자 거짓을 뜻하는 그 객체 nil"의 타입은 null이지, 이 문서의 nil 타입이 아니라는 거죠.
함께 보기
null타입