본문 바로가기

iOS/Swift

[Swift] Array Method (초기화, 추가, 삭제)

1. 개요

  • 배열(Array)은 index와 value 로 이루어져 있다.

2. Initializer

메모리에 초기값을 할당하는 명령어

swift는 type safe 하기 때문에 어떤 타입으로 array가 생성될지 알려줘야 한다.

아래는 모두 type safe 하게 array를 초기화 하는 표현 방식이다.

var names = Array<String>()
var ages = [Int]()

3.  추가

1) append
요소 추가

var names = Array<String>()

names.append("kim")
names.append("lee")
names.append("han")

//결과: ["kim", "lee", "han"]

 



2) append(contentsOf: )

배열 병합

var names = Array<String>()

names.append("kim")
names.append(contentsOf:["lee", "han"])

//결과: ["kim", "lee", "han"]

 

3) array + array

배열 병합

var names = Array<String>()

names.append("kim")
names.append(contentsOf:["lee", "han"])
names + ["jung"]

//결과: ["kim", "lee", "han", "jung"]

names + "jung" 이 문법적으로 안되는 이유

위 코드상 names의 타입은 [String] 이고, 더하려는 "jung"은 string 타입이기 때문에 서로를 더할 수 없다.

 

4) insert(newElement, at:Int)

특정 인덱스에 요소 추가

var names = Array<String>()

names.append("kim")
names.append(contentsOf:["lee", "han"])
names + ["jung"]

names.insert("check", at:1)

//결과: ["kim", "check", "lee", "han"]

insert 메서드의 [at] 파라미터로 넣을 수 있는 값(int)은 배열의 0부터 배열의 요소 갯수 + 1 까지다.

위코드의 결과를 기준으로 ["kim", "check", "lee", "han"] 으로 insert 를 적용한다고 하면,

 

names.insert("value", at: 4) 는 가능하다.

결과: ["kim", "check", "lee", "han", "value"]

 

그러나  names.insert("value", at: 5) 는 에러가 발생한다.

에러메세지: 

The process has been left at the point where it was interrupted, use "thread return -x" to return to the state before expression evaluation.

 

5) insert(contentsOf: , at:Int)

특정 인덱스에 배열 병합

var array = [1,2,3,4,5,6,7]

array.insert(contentsOf: [22,33], at: 2)

//결과: [1, 2, 22, 33, 3, 4, 5, 6, 7]

4.  삭제

해당 배열에서 아래 메서드를 통해 어떠한 값이 출력되는지 정리

var array = [1,2,3,4,5,6,7]

 

1. removeFirst()

- 배열의 첫번째 요소를 삭제한다.

결과: [2,3,4,5,6,7]

 

1-1. removeFirst(2)

- 배열의 첫번째 요소부터 파라미터로 입력받은 갯수만큼 삭제한다.

결과: [3,4,5,6,7]

 

2. removeLast()

- 배열의 마지막 요소를 삭제한다.

결과: [1,2,3,4,5,6]

 

2-1. removeLast(2)

- 배열의 마지막 요소부터 파라미터로 입력받은 갯수 만큼 삭제한다.

결과: [1,2,3,4,5]

 

3. removeAll()

- 배열의 모든 요소를 지운다.

결과: []

 

4. [n...m] = []

- subscript 문법을 활용하여, n 부터 m 까지의 index를 삭제

var array = [1,2,3,4,5,6,7]

array[1...2] = []

//결과: [1,4,5,6,7]

'iOS > Swift' 카테고리의 다른 글

[Swift] Collection Type - Set 알아보기  (0) 2023.06.28
[Swift] lazy property  (0) 2023.06.19
[Swift] Function 의 In-Out parameter  (1) 2023.06.04