Swift에선 총 두 개의 배열이 존재함!!
Swift에서 제공하는 Array라는 것과 나머지 하나는 Foundation에서 제공하는 NSArray라는 것임!! (Objective-C 문법)
이 둘의 차이점은 다음과 같음 :)
Array | NSArray | |
---|---|---|
타입 | 구조체 타입 | 클래스 타입 |
저장 위치 | 스택(Stack) | 스택(Stack) |
요소(Element) 자료형 | 모두 동일한 자료형만 저장 가능 (Int형 배열은 Int형만 저장 가능, String형 배열은 String형만 저장 가능) | 인스턴스라면 타입 상관 없이 저장 가능 (Int, Double 같은 구조체 타입은 저장 불가, NSNumber 같은 인스턴스로는 저장 가능. 인스턴스기만 한다면 NSString,NSNumber등 타입에 상관 없이 하나의 배열에 모두 저장 가능) |
COW(Copy-on-write) | O | X |
오늘은 배열에 대해 전반적인 내용을 알아보고 우리가 자주 사용하는것은 array기 때문에! array에 관련된 메서드들도 함께 알아볼 것임!!
아래 예시와 함께 더 자세히 살펴 보자
// let 키워드를 사용한 상수 배열
let fruits = ["apple", "banana", "cherry"]
// fruits.append("date")
// Error: Cannot use mutating member on immutable value: 'fruits' is a 'let' constant
print(fruits)
// var 키워드를 사용한 변수 배열
var numbers = [1, 2, 3, 4]
numbers.append(5)
print(numbers)
var array3: [Int] = [1, 2, 3]
var array4: [Int] = [] //빈 배열 생성
//빈 배열
var emptyArray1 = [Int]()
var emptyArray2 = Array<String>()
//초기값을 가진 배열
var arrayWithInitialValues = [1, 2, 3, 4, 5]
//배열 리터럴
var colors = ["red", "green", "blue"]
var numbers = Array(repeating: 0, count: 10)
//다양한 타입을 가진 배열
var mixedArray: [Any] = [1, "two", 3.0, true]
print(emptyArray1) // []
print(emptyArray2) // []
print(arrayWithInitialValues) // [1, 2, 3, 4, 5]
print(colors) // ["red", "green", "blue"]
print(numbers) // [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
print(mixedArray) // [1, "two", 3.0, true]
👆 클릭하여 링크로 이동하여 자세히 확인 가능
여러가지 메서드와 프로퍼티를 공부하고 익힐 때마다 하나씩 추가하는 중
사전은 키-값(key-value) 쌍으로 구성된 컬렉션 자료형입니다.
var person: [String: Any] =
["name": "John", "age": 30, "isStudent": true]
집합은 순서 없이 유일한 값을 저장하는 자료구조입니다.
var uniqueNumbers: Set<Int> = [1, 2, 3, 4, 5]