패스트캠퍼스) ios 개발 챌린지

[패스트캠퍼스 수강 후기] IOS개발강의 100% 환급 챌린지 18회차 미션

student513 2020. 11. 19. 12:03

오늘은 산더미 같은 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