// Collection 컬렉션, 수집 ...
// 수많은 변수를 하나의 통에 넣어 관리하면 편하다
// 이때 통에서 순서를 두어 커피를 나눠줄 수 있다.
// 커피에 이름이 새겨 구분하여 나눠줄 수 있다.
// Array, Dictionary, Set, Closure
// Array : 동일한 타입, 순서index
var evenNumbers: [Int] = [2, 4, 6, 8]
var evenNumbers2: Array<Int> = [2, 4, 6, 8]
evenNumbers.append(10) //let이면 오류뜬다.
print(evenNumbers)
evenNumbers += [12, 14, 16]
print(evenNumbers)
evenNumbers.append(contentsOf: [18, 20])
print(evenNumbers)
// 선언과 추가의 종류가 이렇게 있을 이유를 찾아보라
// 비어있는지 확인할 때
let isEmpty = evenNumbers.isEmpty
print(isEmpty)
// elements의 갯수가 궁금할 때
print(evenNumbers.count)
// 배열이기에 처음값을 땡겨올 수 있다.
print(evenNumbers.first) // Optional(2)가 나온다.
// 배열이 비어있을 수 있기에 nil에 접근하는것을 방지하기 위함이다.
// Optional binding
if let firstElement = evenNumbers.first {
print(firstElement)
} else {
}
// 대소비교 // 있을 수도 없을 수 도 있기에 optional type이다.
print(evenNumbers.max())
print(evenNumbers.min())
//접근
var firstItem1 = evenNumbers[0]
var firstItem2 = evenNumbers[1]
var firstItem3 = evenNumbers[evenNumbers.count-1]
// var firstItem3 = evenNumbers[evenNumbers.count] //error
print(firstItem1, firstItem2, firstItem3)
// range //python의 슬라이싱연산과 유사
let firstThree = evenNumbers[1...5] // [1][2][3][4][5]인 list반환
print(firstThree)
// 포함되어 있는지 확인
print(firstThree.contains(3), firstThree.contains(4))
// 원하는 값을 원하는 index에 집어넣기, 뒤의 값들은 밀려나간다.
evenNumbers.insert(1, at:3)
print(evenNumbers)
// Array 비우기
evenNumbers.remove(at:1)
print(evenNumbers)
var reEven = evenNumbers
reEven.removeAll() // reEven = [] 와 같다.
print(reEven)
// 특정 index에 있는 값 update하기
evenNumbers[1] = -1
print(evenNumbers)
evenNumbers[0..<3] = [-1, -2, -3, -4]
print(evenNumbers)
// swap 바꿔치기 (index기준으로 바꾼다.)
evenNumbers.swapAt(0,1)
print(evenNumbers)
// for
for num in evenNumbers {
// print(num)
}
// index와 value를 같이 들고온다.
for (index, value) in evenNumbers.enumerated() {
print("\(index)번째 : \(value)")
}
// drop 날려버린다. 갯수로
print(evenNumbers.dropFirst(3)) //앞의 3개를 날린 list를 반환한다.
print(evenNumbers.dropLast(3)) // 뒤의 3개를 날린 list를 반환한다.
print(evenNumbers) // 실제 list에는 영향을 주지 않는다.
// 앞, 뒤에서 원하는 갯수만큼 가져오기
print(evenNumbers.prefix(3))
print(evenNumbers.suffix(3))
print(evenNumbers) // 기존 list에 영향을 주지 않는다.
// isEmpty, count, evenNumbers[1] 접근, for loop
'Toy Project > Swift Language Syntax' 카테고리의 다른 글
6. Swift Closure basic (0) | 2021.01.21 |
---|---|
5. Swift Collection(Dicionary, Set) (0) | 2021.01.21 |
3. Swift Optional (0) | 2021.01.21 |
2. Swift Function (0) | 2021.01.21 |
1. swift basic (0) | 2021.01.21 |