Swift 언어
타입 추론과 컴파일 시간·let vs var
Swift는 타입 추론이 있어 타입을 거의 안 써도 되는데, 팀 컨벤션에 "복잡한 표현식과 public API에는 타입을 명시하라"는 규칙이 있습니다. 타입 추론이 어떻게 동작하기에 이런 규칙이 생겼나요?
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
Swift는 타입 추론이 있어 타입을 거의 안 써도 되는데, 팀 컨벤션에 "복잡한 표현식과 public API에는 타입을 명시하라"는 규칙이 있습니다. 타입 추론이 어떻게 동작하기에 이런 규칙이 생겼나요?
Swift 타입 추론은 표현식 전체의 제약을 모아 한꺼번에 푸는 양방향 방식이라, 리터럴과 오버로드된 연산자가 많은 긴 표현식에서는 후보 조합이 폭발해 컴파일이 느려지거나 'expression too complex' 에러가 난다. 타입을 적어 주면 후보가 잘려 해결이 빨라지고 API 계약이 드러난다.