안녕하십니까 공부하는 개발자 입니다.
오늘의 포스팅은 배열의 메서드 관련 포스팅 입니다.
Swift 개발자의 길이 험하네요 ㅎㅎ
1
|
var alphabet = ["A", "B", "C"]
|
cs |
기본적인 배열을 선언 하였습니다.
🔔여기서 만약 값"D" 추가하려면 어떻게 해야할까요?
alphabet.append("D")
바로 append메서드를 이용하면 됩니다.
🔔그렇다면 E와 F를 추가하려면 어떤식으로 해야할까요?
alphabet.append(contentsOf: ["E", "F"])
이런식으로 append메서드에다가 contentsOf라는 옵션을 넣어준다면 기존의 배열 뒷부분에 선택한 요소들이 추가됩니다.
🔔 만약 배열의 마지막이 아니라 중간에 값을 추가한다면 append를 사용 할수 있을까?
정답은 아니다, 값을 만약 중간에 추가하고 싶다면 insert메서드를 이용해야 한다.
alphabet.insert("D", at: 3)
이런식으로 insert문을 이용한다 첫 파라미터에는 추가하고싶은 값을, 두번째 at:에는 정수를 넣으면
배열의 3번째 (0부터 시작)요소에 값을 추가 할 수 있다.
만약 여러 값을 추가 하고 싶다면 첫번째 파라미터에 똑같이 contentsOf 옵션으로 값을 다수 지정해주면 된다.
🔔 배열의 값을 변경하고 싶다면 2가지 방법이 있다.
alphabet[0...2] = ["x", "y", "z"]
이런식으로 범위를 선언한다음 = 으로 값을 선언해주는 것
또 다른 하나는
alphabet.replaceSubrange(0...2, with: ["a", "b", "c"])
이런식으로 replaceSubrange를 사용하는 것 이다.
첫번째 파라미터는 범위를 지정하고 with에는 그에 맞는 요소들을 배열로 넣어주면 위의 방법과 동일한 결과를 얻을 수 있다.
주의 할 사항으로는 범위의 값의 index와 변경해야할 배열의 index가 같지 않아도 된다.
alphabet[0...2] = ["z"]
이런식으로 사용이 가능하다. 결과는
["a", "b", "c", "A", "B", "C", "D", "E", "E", "F"] ->["z", "A", "B", "C", "D", "E", "E", "F"]
이런식으로 abc가 사라지고 z만 추가되는 것을 확인할 수 있다.
이 방법을 조금 활용한다면
alphabet[0...2] = []
이런식으로 선언하면 값을 삭제할 수 있다.
하지만 보통 삭제는 다른 메서드를 이용하여 삭제를 진행한다.
바로 remove 메서드 입니다.
alphabet.remove(at: 2)
at에는 index를 지정하여 원하는 값을 삭제 할 수 있습니다.
또 swift가 사랑하는 first와 last메서드도 있습니다.
alphabet.removeFirst()
배열의 첫 요소를 삭제하는 메서드 입니다.
만약 removefirst에 정수를 파라미터로 넣는다면 첫번째 요소부터 정수개의 요소를 삭제하게 됩니다.
removeLast는 그 반대겠죠?
🔔 만약 배열의 모든 요소를 삭제하고싶다면 어떻게 해야할까요?
alphabet.removeAll()
바로 removeAll메서드를 이용합니다.
배열안의 모든 요소를 삭제해 줍니다.
🔔 만약에 요소가 없을때 remove메서드를 이용하면 어떻게 될까?
Fatal error: Index out of range
바로 에러가 터지고 맙니다.
이러한 안정성을 유지하기 위해서 pop메서드를 이용합니다.
alphabet.popLast()
popLast메서드는 마지막 요소를 삭제하고 삭제된 요소를 반환, 없으면 nil을 반환해준다.
🔔 그렇다면 범위로 배열 요소를 삭제 할 수 있을까?
아까 소개한 방법으로도 가능하다. 그러나 메서드를 이요해 보자
alphabet.removeSubrange(0..<2)
alphabet[0...2] = []
둘은 같은 결과를 가져온다.
'Ios > Swift' 카테고리의 다른 글
[Swift] Swift Collection Dictionary 스위프트 딕셔너리 (0) | 2022.06.29 |
---|---|
[Swift] Swift Collection Array_3 스위프트 배열_3 (0) | 2022.06.27 |
[Swift] Swift Collection_Array 스위프트 배열 (0) | 2022.06.25 |
[Swift]String Option 문자의 옵션 모음 (0) | 2022.06.24 |
[Swift] Comparing String 문자열 비교하기 (0) | 2022.06.23 |