왕논의 연구실

패스트캠퍼스 챌린지 10일차(수정) 본문

강의/강의 챌린지(iOS 앱 개발 올인원 패키지 Online)

패스트캠퍼스 챌린지 10일차(수정)

ywangnon 2021. 11. 10. 22:15

최근 날씨가 급격하게 바뀌다보니 컨디션이 좀 안 좋은듯하다. 오늘은 제대로 진행하기가 힘들었다.

 

10일차는 콜렉션에 대해서 공부하였습니다.

콜렉션은 변수를 담는 통으로 볼 수 있습니다. 코드를 작성할 때, 많은 데이터를 한꺼번에 다루고 싶을 때 사용합니다. 콜렉션은 배열, 딕셔너리, 세트 3가지가 있습니다.

 

배열에 들어가는 데이터는 모두 동일한 타입으로 넣어야 합니다. 그리고 넣어진 자료는 순서가 있습니다. 배열의 위치는 인덱스라고 하는데 처음 인덱스는 0부터 시작합니다. 배열은 보통 순서가 있는 아이템에 사용합니다.

 

var evenNumbers: [Int] = [2, 4,6, 8]

 

엘리먼트 추가도 할 수 있습니다. 추가하면 뒤로 쌓입니다.

evenNumbers.append(10)
evenNumbers += [12, 14, 16]
evenNumbers.append(contentsOf: [18, 20])

 

빈 배열을 확인할 수 있습니다.

let isEmpty = evenNumbers.isEmpty

 

그리고 배열안의 엘리먼트 갯수를 알 수 있습니다.

evenNumbers.count

 

first를 사용해서 첫번째 요소를 가져올 수 있습니다.

print(evenNumbers.first)

// 옵셔널 제거
if let firstElement = evenNumbers.first {
    print("first is \(firstElement)")
}

 

.min .max 함수를 통해 최대값과 최소값을 알 수 있습니다.

evenNumbers.min()
evenNumbers.max()

 

특정 인덱스에 접근하려면 배열 이름 뒤에 대괄호 안에 인덱스 번호를 입력해줍니다.

var firstItem = evenNumbers[0]
var scondItem = evenNumbers[1]
var tenthItem = evenNumbers[9]

 

배열의 인덱스가 연속되게 여러개 필요할 경우 범위로 한꺼번에 읽어올 수 있습니다.

let firstThree = evenNumbers[0...2]

 

특정 요소의 포함 여부를 알 수 있습니다.

 

evenNumbers.contains(3)
evenNumbers.contains(4)

 

특정 인덱스에 바로 넣을 수 있습니다. 이러면 기존인덱스는 입력된 인덱스부터 뒤로 인덱스가 밀립니다.

evenNumbers.insert(0, at: 0)

 

원하는 인덱스의 요소를 없앨 수 있습니다. 이러면 뒤에 있는 요소가 당겨집니다.

evenNumbers.remove(at: 0)

 

배열 요소를 모두 없앱니다.

evenNumbers.removeAll()
evenNumbers = []

 

특정 인덱스 업데이트

evenNumbers[0] = -2
evenNumbers[0...2] = [-2, 0, 2]

 

인덱스 엘리먼트끼리 교체

evenNumbers.swapAt(0, 9)

 

for문의 범위 위치에 배열을 넣을 시, 배열 요소를 하나씩 차례차례 던져줍니다.

for num in evenNumbers {
    print(num)
}

 

그런데 반복문 사용시 인덱스도 필요하다면 enumerated키워드로 인덱스와 값을 동시에 받아올 수 있습니다. 이때, 인덱스와 값을 넣을 변수를 튜플로 만들어 줍니다.

for (index, num) in evenNumbers.enumerated() {
    print("index: \(index), value: \(num)")
}

 

 

// 처음부터 세서 제외된 나머지
let dropFirstArray = evenNumbers.dropFirst(3)

// 뒤에서부터 세서 제외된 나머지
let dropLastArray = evenNumbers.dropLast()

// 처음부터 특정구간까지의 엘리먼트
let dropedFirst = evenNumbers.prefix(3)

// 뒤에서부터 특정구간까지의 엘리먼트
let dropedLast = evenNumbers.suffix(3)

evenNumbers // 실제 배열은 변화 없다.

 

실습사진 1

위 배열의 함수들 중 중요하거나 많이 사용하는 것은 isEmpty, count, 인덱스 접근방법(array[인덱스]), enumerated입니다.

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

 

https://bit.ly/3FVdhDa

 

수강료 100% 환급 챌린지 | 패스트캠퍼스

딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!

fastcampus.co.kr

 

#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #iOS앱개발올인원패키지Online.