Iterator

개발을 할때는 단순한 배열부터 여러 복잡한 트리까지 다양한 자료구조를 사용합니다. 이러한 자료구조들은 내부 구조가 다르기 때문에 사용 방법도 다릅니다. 이렇게 서로 다른 자료구조를 동일한 인터페이스로 순회할 수 있는 방법을 제공해주기 위해 만들어진 것이 반복자(iterator)라는 개념입니다. 반복자는 내부 구조를 노출하지 않고, 원소들을 순차적으로 접근할 수 있도록 만들어줍니다. 이 반복자 개념은 어려... [Read More]

Swift의 타입 캐스팅

타입(Type)은 어떤 데이터를 해석하는 방법입니다. 같은 데이터도 타입에 따라 전혀 다른 의미와 기능을 가지게 할 수 있습니다. 그리고 이러한 타입을 바꾸어 데이터를 해석하는 방법을 바꾸는 것이 타입 캐스팅입니다. Swift에서는 같은 계층구조상에서의 타입 캐스팅을 허용하고 있습니다. 예제를 위해 다음과 같이 클래스를 선언하겠습니다. [Read More]