가변형 컬렉션 : 컬렉션을 생성할 때 변수에 할당
불변형 컬렉션 : 컬렉션을 생성할 때 상수에 할당
배열은 하나의 순서 있는 컬렉션에 여러 값을 담기 위하여 특별하게 설계된 데이터 타입이다.
배열의 타입은 타입 어노테이션을 사용하여 구체적으로 지정할 수도 있고, 타입 추론을 이용하여 컴파일러가 식별하게 할 수도 있다.
다음 구문을 이용하면 배열을 생성할 때 값들을 초기화할 수 있다. 이것을 배열 리터럴이라고 부른다.
var 변수명: [타입] = [값1, 값2, 값3, ....]
빈 배열 생성
var 변수명 = [타입]()
디폴트 값 설정
var nameArray = [String](repeating: "My String", count: 10)
"My String" 문자열로 배열의 각 항목이 초기화되어 10개의 항목을 가진 배열이 생성된다.
배열 합치기
let firstArray = ["Red", "Green", "Blue"]
let secondArray = ["Indigo", "Violet"]
let thirdArray = firstArray + secondArray
배열의 항목들의 개수 구하기
var treeArray = ["Pine", "Oak", "Yew"]
var itemCount = treeArray.count
print(itemCount)
빈 배열 확인하기
var treeArray = ["Pine","Oak"]
if treeArray.isEmpty{
print("배열이 비어있음")
}
배열 항목 접근하기(인덱스 사용)
var treeArray = ["Pine", "Oak", "Yew"]
print(treeArray[2])
treeArray[2] = "Redwood"
배열 항목 섞기, 무작위로 가져오기
let shuffledTrees = treeArray.shuffled()
let randomTree = treeArray.randomElement()
배열에 항목 추가하기
treeArray.append("Redwood")
treeArray += ["Redwood"]
treeArray += ["Redwood", "Maple", "Birch"]
항목 삽입 및 삭제하기
treeArray.insert("Maple", at: 0)
treeArray.remove(at: 2)
treeArray.removeLast()
배열 반복하기
for tree in treeArray{
print(tree)
}
let mixedArray: [Any] = ["A String", 432, 34.989]
Any 배열을 사용할 경우 타입 형 변환에 주의하여야 한다.
딕셔너리는 키-값 쌍의 형태로 데이터를 저장하고 관리할 수 있게 해준다. String, Int, Double, Bool 데이터 타입만 키로 사용할 수 있다.
키의 데이터 타입과 값 항목 타입은 타입 어노테이션을 이용하여 구체적으로 지정돠거나 타입 추론을 이용하여 컴파일러가 식별하게 한다.
var 변수명: [키 타입: 값 타입] = [키1: 값1, 키2: 값2, ....]
빈 딕셔너리 생성
var 변수명 = [키 타입: 값 타입]()
let keys = ["100-432112", "200-532874", "202-546549", "104-109834"]
let values = ["Wind", "Tale", "Sense", "Shutter"]
let bookDict = Dictionary(uniqueKeysWithValues: zip(keys,values))
var bookDict = Dictionary(uniqueKeysWithValues: zip(1...,values)) //키 값 1부터 시작
print(bookDict.count)
특정 값은 해당 키를 참조하기 위하여 키 첨자 구문을 이용하면 접근되거나 수정될 수 있다.
지정된 키에 해당하는 값이 없는 경우에 사용될 디폴트 값을 선언할 수 있다.
print(bookDict["200-532874"])
print(bookDict["999-546547", default: "Book not found"])
bookDict["200-532874"] = "Sense"
bookDict.updateValue("The Ruins", forkey: "200-532874")
항목 추가하기
딕셔너리 변수[키] = 값
항목 제거하기
bookDict["300-898871"] = nil
bookDict.removeValue(forkey: "300-898871")
for (bookid, title) in bookDict {
print("Book ID: \(bookid) Title: \(title)")
}