for-in 구문을 이용하면 집합도 배열처럼 순회 탐색을 할 수 있다. 배열처럼 인덱스를 활용하여 순회 탐색을 할 수는 없지만, 순회 속성이 제공되므로 집합 자체를 for-in 구문에 그대로 넣고 순회 처리하는 방식으로 구문을 작성하면 된다. // 집합을 정의 var genres : Set = ["Classic", "Rook", "Balad"] // 집합을 순회 처리하면서 데이터를 출력 for g in genres { print("\(g)") } 스위프트에서 집합은 원래 순서가 없지만, sort() 메소드를 사용하면 정렬된 결과를 받을 수 있다. 물론, 이때도 집합 자체에 순서를 적용하는 것은 아니며 단순히 메소드 반환값을 정렬하는 것에 지나지 않는다. // 집합을 정의 var genres : Set =..
1. 집합 집합(Sets)은 같은 타입의 서로 다른 값을 중복 없이 저장하고자 할 때 사용하는 집단 자료형이다. 집합은 배열과 매우 유사하지만, 배열을 사용하기에는 순서가 그다지 중요하지 않은 데이터 들이거나 중복 없이 한 번만 저장되어야 하는 데이터를 다룰 때 배열 대신 사용할 수 있는 자료형이다. 집합은 내부적으로 *해시(Hash) 연산의 결과값을 이용하여 데이터를 저장하므로 집합에 저장할 데이터 타입은 해시 연산을 할 수 있는 타입이어야 한다. 📝 집합에 저장할 데이터 타입은 반드시 해시값을 계산하는 방법을 제공해야 한다는 뜻 해시 연산의 결과로 얻을 수 있는 해시값은 일련의 정수로 구성되며, 대상의 값이 같다면 해시 연산에 의한 결과값도 마찬가지로 일치하는 특성이 있다. 📝 해시연산이란? 해시 연..
배열의 인덱스를 지정해서 개별 아이템을 참조하는 방식 이외에도 범위 연산자를 사용하면 특정 범위의 인덱스에 해당하는 아이템을 모두 참조할 수 있다. var alphabet = ["a", "b", "c", "d" ] alphabet[0...2] // ["a", "b", "c"] alphabet[1..
배열에 동적으로 데이터를 추가할 때에는 메소드를 사용하는데, 기능에 따라 다양한 메소드가 있지만 대표적인 것으로 세 가지 정도 사용한다. append(_:) insert(_:at:) append(contentsOf:) 1. append(_:) append(_:) 메소드는 입력된 값을 배열의 맨 뒤에 추가한다. 일반적으로 배열에서 존재하지 않는 인덱스에 접근하면 오류가 발생하므로 이 메소드는 데이터 추가 전에 먼저 배열의 크기를 +1만큼 확장하여 인덱스 공간을 확보한 후, 인자값을 마지막 인덱스 위치에 추가한다. 2. insert(_:at:) insert(_:at:) 메소드는 데이터를 배열의 맨 뒤가 아닌 원하는 위치에 직접 추가하고 싶을 때 사용한다. at: 뒤에 입력되는 정수값은 배열에서 데이터가 추가..
값을 할당하지 않은 빈 배열을 선언하고 초기화할 때는 두 가지 형식을 사용할 수 있다 첫 번째 형식 Array () 📝 기호를 사용하여 배열 내부에서 사용할 데이터 타입을 지정하는 문법을 제너릭(Generic)이라고 한다. 스위프트에서 배열을 정의하는 객체는 Array다. 구조체로 정의된 이 객체는 실질적인 배열 데이터를 만드는 데 사용될 뿐만 아니라 배열에서 데이터를 효과적으로 다루기 위한 다양한 기능까지 제공해 준다. 스위프트에서 배열을 정의할 때에는 반드시 저장할 데이터의 타입도 함께 명시해 주어야 한다. 컴파일러는 이때 입력받은 아이템 타입을 이용하여 다른 데이터 타입이 입력되었을 경우 잘못 입력되었음을 판단할 뿐만 아니라, 배열 내부의 데이터를 바로 데이터 타입 형태로 사용할 수 있도록 ..
순서가 있는 데이터를 처음부터 마지막까지 차례대로 읽어 들이는 것을 순회 탐색이라고 한다. 배열을 순회 탐색할 때에는 for-in 구문을 많이 사용한다. 방식은 크게 두 가지로 나눌 수 있는데, 한 가지는 배열의 길이를 직접 다루는 방식이고, 다른 한 가지는 배열의 순회특성을 이용하는 방식이다. 1. 직접 다루는 방식 배열의 길이를 직접 다루는 방식이란 배열의 길이를 구해서 이 횟수만큼 루프가 반복되도록 직접 구현하는 것을 말한다. 최소한 한 줄의 코드가 더 필요하지만, 배열 자체에 의존하지 않고 길이만 가져와 사용하는 방식으로 원하는 만큼 횟수를 늘리거나 줄일 수 있으며 다양한 작업을 다룰 때 많이 사용된다. 스위프트에서는 배열의 길이를 구할 때에는 배열 변수나 상수에 .count 를 붙여주면 된다. ..