Array
배열이라고 부르는 Array는 변수(데이터)를 0부터 시작하는 번호(인덱스) 순서에 따라 관리하는 자료구조이다.
스위프트에서 Array는 두 가지 방법으로 선언할 수 있다.
var testArray = Array<String>()
var testArray2 = [String]()
첫 번째처럼 선언할 땐 <> 안에 타입을 명시해주어야 하고,
두 번째처럼 선언할 땐 [] 안에 타입을 명시해주어야 한다.
타입을 명시하지 않으면 오류가 난다.(Type Safe)
append()
선언한 Array에 데이터를 삽입할 땐 append()를 사용한다.
var arrayName = [String]()
arrayName.append("baby")
arrayName.append("coder")
// 들어간 순서대로(0부터) index 번호에 자리를 잡음
print(arrayName[0])
print(arrayName[1])
arrayName이라는 String 타입의 변수를 담는 Array를 생성했다.
append()를 사용한 순서대로 "baby"와 "coder"라는 문자열 변수를 추가했다.
인덱스는 0부터 시작해서 순차적으로 값을 할당하기 때문에 0번째 자리에는 "baby"가 삽입되고, 1번째 자리에는 "coder"가 삽입된다.
위의 방법처럼 한줄한줄 추가할 수 있지만,
한 번의 명령어 사용으로 여러 개를 추가하는 방법도 있다.
// Array에 Array 추가 방법1
arrayName.append(contentsOf: ["baby2", "coder2"])
// Array에 Array 추가 방법2
arrayName = arrayName + ["baby3", "coder3"]
print(arrayName)
append()를 입력하면서 자동으로 contentsOf:가 선언된다.
변수 하나하나 넣지 않고 새로운 Array 통째로 삽입한다.
여러 개를 삽입할 때 코드를 더 간결하게 작성할 수 있다.
remove()
Array에 추가한 데이터를 삭제하는 메서드다.
arrayName.remove(at: 0)
삭제하려는 데이터의 인덱스 번호를 at에 넣어서 삭제한다.
Array 변수에 remove를 입력하면 자동으로 추천해주는 메서드들이 있다.
removeAll() 하면 모든 데이터들이 삭제,
removeLast() 하면 제일 마지막에 추가한 데이터를 삭제,
removeFirst() 하면 제일 첫 번째에 추가한 데이터를 삭제한다.
insert()
append()를 사용하면 Array의 가장 마지막에 값이 추가된다.
마지막 자리가 아닌 원하는 위치에 값을 넣고 싶을 때 insert()를 사용한다.
arrayName.insert("index 1 insert", at: 1)
arrayName.insert("index 4 insert", at: 4)
print(arrayName)
insert(추가할 데이터, at:추가할 인덱스)의 방법으로 원하는 위치에 값을 추가할 수 있다.
Array for문 사용
for data in arrayName {
print(data)
}
for문을 사용하면 Array의 값들을 가져오기가 편하다.
data라는 변수는 arrayName 안에 있는 값들을 차례대로 할당받는다.
이렇게 값만 가져올 수 있지만 인덱스 번호도 함께 필요한 경우도 있다.
인덱스 값을 계산할 변수를 하나 선언해서 for 루프를 돌 때마다 count 하는 방법을 일반적으로 사용했는데 스위프트에서는 인덱스 번호까지 가져오는 함수를 제공해준다. (다른 언어에도 있는데 내가 몰랐던 거 일 수 있다..ㅎㅋㅋㅎㅎㅎ)
for (index, data) in arrayName.enumerated() {
print(index, data)
}
enumerated()가 두 개의 값을 던져주기 때문에 for문 변수도 두 개를 만들어줘야 한다.
Array의 값과 인덱스 번호 모두 사용해야 할 때 유용할 것 같다 !!
Array 데이터 개수 & 유무 확인
if arrayName.count == 0 {
print("비어있는 Array")
} else if arrayName.isEmpty {
print("비어있는 Array")
}
count를 사용하면 Array 안에 들어있는 데이터의 개수를 세어 반환한다.
isEmpty를 사용하면 비었을 경우 true를 반환하고, 비어있지 않으면 false를 반환한다.
'DEV - iOS > iOS' 카테고리의 다른 글
[Swift] 스위프트 기본 문법 공부(6) - Enumerations (0) | 2022.02.15 |
---|---|
[Swift] 스위프트 기본 문법 공부(5) - 함수 & 클로저 (0) | 2022.02.14 |
[Swift] 스위프트 기본 문법 공부(4) - Set & Dictionary (0) | 2022.02.09 |
[Swift] 스위프트 기본 문법 공부(2) (0) | 2022.01.04 |
[Swift] 스위프트 기본 문법 공부(1) (0) | 2021.12.27 |