반응형
정말 많은 변수들이 등장한다.
그 많은 변수들을 관리할 때에는 통(collection)에 넣어서 관리를한다.
형식은
1. 앞에서 부터 부장님 차장님 팀장님 그다음 내꺼
2. 각각 부장님 차장님 팀장님 내꺼 스티커 붙이기
등등
여러 통의 종류가 있다.
Array
Dictionary
Set
+ Closure
우리는 어떻게 엮였을 때 효과적인지를 집중하며 알아보자
Array와 Dictionary는 정말 필수개념이다.
Array
Element | Element | Element | Element |
이 통에 담을 때에는 전부 같은 타입이어야 한다.
O 같은 타입
Type 1 | Type 1 | Type 1 | Type 1 |
X 다른 타입
Type 1 | Type 1 | Type 2 | Type 2 |
INDEX
각각의 Element에 번호가 붙어있다.
첫번째 : 0
마지막 : 전체 갯수 - 1 번
Index 0 | Index 1 | Index 2 | Index 3 |
언제 사용할까
- 순서가 있는 아이템
- 아이템의 순서를 알면 유용할 때
import UIKit
//Array declaration
//let evenNumbers: [Int] = [2, 4, 6, 8]
//let evenNumbers2: Array<Int> = [2, 4, 6, 8]
//evenNumbers.append(10)
//Cannot use mutating member on immutable value: 'evenNumbers' is a 'let' constant
//var evenNumbers: [Int] = []
//빈통
var evenNumbers: [Int] = [2, 4, 6, 8]
evenNumbers.append(10)
//Adds a new element at the end of the array.
evenNumbers += [12,14,16]
evenNumbers.append(contentsOf: [18, 20])
//evenNumbers = []
let isEmpty = evenNumbers.isEmpty
//비어있으면 true
evenNumbers.count
//10
print(evenNumbers.first)
//Optional(2) 옵셔널로 반환
// declaration : let firstItem: Int?
//상자안에 값이 있을 수도 있고 없을 수도 있기 때문
//evenNumbers = [] //nil
//let firstItem = evenNumbers.first
//let firstItem = evenNumbers.last //있을수도 없을 수도
//옵셔널바인딩으로 깔끔하게
//if let firstElement = evenNumbers.first {
// print("---> first item is : \(firstElement)")
//}
evenNumbers.min()
evenNumbers.max()
evenNumbers[0]
//first item
var firstItem = evenNumbers[0]
var secondItem = evenNumbers[1]
var tenthItem = evenNumbers[9]
//var twentythItem = evenNumbers[19]
//error: Execution was interrupted, 너무 크리티컬한 에러
// ------->
// Range 사용하기
evenNumbers
let fistThree = evenNumbers[0...2]
//[2, 4, 6]
evenNumbers.contains(3)
//false
evenNumbers.contains(4)
//true
evenNumbers.insert(0, at: 0)
//[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
//evenNumbers.removeAll()
evenNumbers.remove(at: 0)
//특정 인덱스 삭제
evenNumbers
//[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
evenNumbers[0] = -2
evenNumbers
//[-2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
evenNumbers[0...2] = [-2,0,2]
evenNumbers
//[-2, 0, 2, 8, 10, 12, 14, 16, 18, 20]
//evenNumbers.swapAt(0, 1)
//[0, -2, 2, 8, 10, 12, 14, 16, 18, 20]
evenNumbers.swapAt(0, 9)
//[20, 0, 2, 8, 10, 12, 14, 16, 18, -2]
// ---> for문을 이용해 꺼내보기
//for num in evenNumbers{
// print(num)
//}
/*
20
0
2
8
10
12
14
16
18
-2
*/
// ---> index 번호와 value를 표시하는 방법
//for (index, num) in evenNumbers.enumerated() {
// print("index: \(index), value: \(num)")
//}
/*
index: 0, value: 20
index: 1, value: 0
index: 2, value: 2
index: 3, value: 8
index: 4, value: 10
index: 5, value: 12
index: 6, value: 14
index: 7, value: 16
index: 8, value: 18
index: 9, value: -2
*/
let firstThreeRemoved = evenNumbers.dropFirst(3)
//앞에 3개만 빼고 보고 싶을때
evenNumbers //[20, 0, 2, 8, 10, 12, 14, 16, 18, -2]
firstThreeRemoved //[8, 10, 12, 14, 16, 18, -2]
let lastRemoved = evenNumbers.dropLast() //[20, 0, 2, 8, 10, 12, 14, 16, 18]
lastRemoved //[20, 0, 2, 8, 10, 12, 14, 16, 18]
let firstThree = evenNumbers.prefix(3) //[20, 0, 2]
let lastThree = evenNumbers.suffix(3) //[16, 18, -2]
//기억해야할 것
evenNumbers.isEmpty
evenNumbers.count
//evenNumbers[인덱스 번호]를 용하여 접근
//for 루프를 이용해 순서대로 가져오는 방법
// ---> index 번호와 value를 표시하는 방법
//for num in evenNumbers{
// print(num)
//}
//for (index, num) in evenNumbers.enumerated() {
// print("index: \(index), value: \(num)")
//}
반응형
'모바일앱 > Swift' 카테고리의 다른 글
구조체와 클래스의 차이점 (0) | 2021.10.11 |
---|---|
Collection - Closure, Capturing Values (0) | 2021.10.10 |
Collection - Set (0) | 2021.10.10 |
Collection - Dictionary (0) | 2021.10.10 |
옵셔널 도전과제 (0) | 2021.10.08 |
옵셔널 (0) | 2021.10.07 |
함수의 고급기능(1. 오버로드 2. In-out parameter 3. 함수안에 함수를 넣기) (0) | 2021.10.06 |
기본함수사용능력 테스트 (0) | 2021.10.06 |