오늘은 Any, AnyObject, 그리고 Generic의 차이점에 대해서 알아보겠다.
Any는 모든 타입의 인스턴스를 표현해줄 수 있다. enum, class, 또는 struct를 내타내줄 수 있다. 그러므로 Reference 타입과 Value 타입 둘 다 사용할 수 있다.
AnyObject는 class 타빙의 인스턴스를 표현해줄 수 있다. class 타입이므로 Reference 타입을 사용해야할때 유리하다. 추가로 클래스 타입에 사용해야할 protocol에도 사용이 가능하다.
Generic은 function에서 사용되었을때 'T' 부분에 들어간 타입은 function이 끝날때까지 해당 타입을 유지한다. 그리고 enum, class, 또는 struct의 타입으로도 사용이 가능한데 이때도 마찬가지로 해당 타입을 유지한다.
셋 다 용도는 비슷하지만 약간씩의 차이점이 있기때문에 정확하게 잘 활용한다면 좋은 코드를 만들기 좋을거같다.