Daily iOS
Swift 언어

제네릭 vs Any와 특수화

코드 리뷰 중 func larger(_ a: Int, _ b: Int) -> Int, larger(_ a: Double, _ b: Double) -> Double, larger(_ a: String, ...)처럼 타입별로 같은 로직을 오버로딩해 둔 함수를 발견했습니다. 제네릭 하나로 바꾸자고 제안하려 합니다. 제네릭으로 받는 것은 파라미터를 Any로 받는 것과 무엇이 다른가요?

면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
짧은 답 보기

제네릭은 타입 자리표시자 T에 Comparable 같은 제약을 걸어 중복을 없애면서도 컴파일 시점의 타입 검사를 유지한다. Any는 캐스팅이 필요하고 런타임에 실패한다.

받은 질문 공유