[Swift] 스위프트의 배열 초기화,추가,삭제 방법 및 예제 코드 (.count, .isEmpty, .shuffled, .append 등)
스위프트 배열 초기화
다음 구문을 이용하면 배열을 생성할 때 값들을 갖도록 초기화할 수 있다. 이것을 배열 리터럴(array literal)이라고 부른다.
var 변수명: [타입] = [값1, 값2, 값3, ....... ]
var treeArray = ["Pine", "Oak", "Yew"]
다른 방법으로, 동일한 배열을 상수에 할당하여 불변형으로 생성할 수도 있다.
let treeArray = ["Pine", "Oak", "Yew"]
다른 방법으로, 동일한 배열을 가지고 타입 어노테이션을 이용하여 선언할 수 있다.
var treeArray: [String] = ["Pine", "Oak", "Yew"]
배열을 생성할 때 반드시 값을 할당해야 할 필요는 없다. 다음 구문은 빈 배열을 생성할 때 사용되는 것이다.
var 변수명 = [타입]()
var priceArray = [Float]()
또 다른 유용한 초기화 기술로는 배열의 각 항목마다 지정된 디폴트 값으로 미리 설정하여 배열이 특정 크기로 초기화되도록 할 수 있다.
var nameArray = [String](repeating: "My String", count: 10)
앞의 코드를 컴파일하고 실행하면 ‘My String’이라는 문자열로 배열의 각 항목이 초기화되어 10개의 항목을 가진 배열이 생성된다.
기존의 배열 두 개를 합하여(배열 모두가 동일한 타입의 값을 포함하고 있다고 가정) 새로운 배열을 생성할 수도 있다.
let firstArray = ["Red", "Green", "Blue"]
let secondArray = ["Indigo", "Violet"]
let thirdArray = firstArray + secondArray
배열 항목 개수
하나의 배열에 들어 있는 항목들의 개수는 배열의 count 프로퍼티에 접근하여 얻을 수 있다.
var treeArray = ["Pine", "Oak", "Yew"]
itemCount = treeArray.count
print(itemCount)
다음과 같이 불리언 타입인 isEmpty 프로퍼티를 이용하면 배열이 비었는지 알 수 있다.
var treeArray = ["Pine", "Oak", "Yew"]
if treeArray.isEmpty {
//배열이 비어있다
}
배열 항목 접근하기
인덱스 첨자(index subscripting)라 불리는 기술을 이용하여 배열 인덱스(배열의 첫 번째 항목의 인덱스 위치는 0이다)의 항목 위치를 참조하여 배열의 특정 항목에 접근하거나 수정할 수 있다.
var treeArray = ["Pine", "Oak", "Yew"]
print(treeArray[2])
이러한 방법은 특정 인덱스 위치에 있는 값을 교체하는 데 사용될 수도 있다.
treeArray[1] = "rewards"
배열 항목 섞기와 무작위로 가져오기
let shuffledTrees = treeArray.shuffled()
배열의 항목을 무작위로 선택하여 접근하려면 randomElement() 메서드를 호출하면 된다.
let randomTree = treeArray.randomElement()
배열에 항목 추가하기
배열의 항목은 append 메서드 또는 +나 += 연산자를 이용하여 배열에 추가될 수 있다.
treeArray.append("Redwood")
treeArray += ["Redwood"]
treeArray += ["Redwood", "Maple", "Birch"]
항목 삽입하기와 삭제하기
배열에 삽입될 새로운 항목은 insert(at:) 메서드를 호출하여 특정 인덱스 위치에 삽입할 수 있다.
기존 항목들은 오른쪽으로 한 칸씩 이동하게 된다.
treeArray.insert("Maple", at: 0)
마찬가지로, 배열의 특정 인덱스 위치에 있는 항목은 remove(at:) 메서드를 호출하여 제거할 수 있다.
treeArray.remove(at: 2)
배열의 마지막 항목을 삭제하려면 다음과 같이 removeLast 메서드를 호출하면 된다
treeArray.removeLast()
배열 반복하기
let treeArray = ["Pine", "Oak", "Yew", "Maple", "Birch", "Myrtle"]
for tree in treeArray {
print(tree)
}
타입이 혼합된 배열 생성하기
타입이 혼합된 배열은 서로 다른 클래스 타입의 항목들을 담을 수 있는 배열이다.
let mixedArray: [Any] = ["A String", 432, 34.989]
Any 타입은 주의해서 사용해야 한다. 왜냐하면 Any를 사용할 경우 스위프트는 올바른 타입의 요소들이 배열에 포함되었다고 간주하게 되므로 코드상에서의 프로그래머 실수로 인한 오류가 발생할 수 있기 때문이다.
-알라딘 eBook <핵심만 골라 배우는 SwiftUI 기반의 iOS 프로그래밍> (닐 스미스 지음, 황반석 옮김) 중에서