오늘은 산더미 같은 array의 프로퍼티들에 관해 배웠다.
javascript마냥 뭐가 많다. 좀 뇌절 같은 기능들도 있고 암튼 그렇다
자주 쓰이는 몇 가지만 외워 쓰면 편하겠다.
1. 선언
var evenNumbers: [Int] = [2, 4, 6, 8]
let evenNumbers2: Array<Int> = [2, 4, 6, 8]
선언은 C++에서 벡터 선언하는 것 마냥 할 수 있다.
2. 참조 및 할당
var firstItem = evenNumbers[0]
var secondItem = evenNumbers[1]
var tenthItem = evenNumbers[9]
let firstThree = evenNumbers[0...2]
var num: [Int] = [0...3] // error
다른 언어에서와 마찬가지로 인덱스로 참조할 수 있다.
그 외에 range로 인덱스 범위만큼 한꺼번에 할당할 수도 있다.
혹시 range로 value 할당은 가능하지 않을까 시도해봤는데 어림도 없었다.
3. append
evenNumbers.append(10)
evenNumbers += [12, 14, 16]
evenNumbers.append(contentsOf: [18, 20])
array의 뒷 부분에 value를 삽입한다. push_back과 동일한 개념
두 번째 줄의 코드는 상당히 직관적이라 보기 좋다.
4. min & max
evenNumbers.min()
evenNumbers.max()
배열의 최솟값 혹은 최댓값을 반환한다.
이런걸 보면 알고리즘 풀이에 이용하고 싶은 욕구가 솟는다.
5. contains
evenNumbers.contains(3)
evenNumbers.contains(4)
파라미터가 배열 내에 존재하는지 확인하여 bool 형태로 반환한다.
6. insert & remove
evenNumbers.insert(0, at: 0)
//evenNumbers.removeAll()
evenNumbers.remove(at: 0)
insert는 at index에 값을 삽입하는 것. append는 무조건 뒤에 삽입하는 것에 비해 섬세하게 데이터를 삽입할 수 있다
그러나 push back만 하고 싶다면 번거롭게 insert를 하는 것보단 간단하게 append를 쓰는게 의미를 전달하는데 있어서도 용이하다.
remove는 at index의 값을 삭제한다.
7. dropFirst, dropLast, prefix, suffix
// 첫 3개를 떨어트림
let firstThreeRemoved = evenNumbers.dropFirst(3)
// 끝 1개를 떨어트림
let lastRemoved = evenNumbers.dropLast()
// 첫 3개를 참조함
let firstThree = evenNumbers.prefix(3)
// 끝 3개를 참조함
let lastThree = evenNumbers.suffix(3)
개인적으로 drop 프로퍼티는 좀 뇌절인 것 같다.
prefix, suffix 만든김에 끼워 넣은 느낌이랄까.
prefix, suffix는 최근 글 3개 불러오기, 인기 게시글 노출하기 등등의 기능을 구현하는데 정렬된 배열에다 사용할 수 있을 것 같은데
drop은 어디다 쓰란말일까?
올인원 패키지 : iOS 앱 개발👉https://bit.ly/2FjWizq
'패스트캠퍼스) ios 개발 챌린지' 카테고리의 다른 글
[패스트캠퍼스 수강 후기] IOS개발강의 100% 환급 챌린지 20회차 미션 (0) | 2020.11.21 |
---|---|
[패스트캠퍼스 수강 후기] IOS개발강의 100% 환급 챌린지 19회차 미션 (0) | 2020.11.20 |
[패스트캠퍼스 수강 후기] IOS개발강의 100% 환급 챌린지 17회차 미션 (0) | 2020.11.18 |
[패스트캠퍼스 수강 후기] IOS개발강의 100% 환급 챌린지 16회차 미션 (0) | 2020.11.17 |
[패스트캠퍼스 수강 후기] IOS개발강의 100% 환급 챌린지 15회차 미션 (0) | 2020.11.16 |