Toy Project/Swift Language Syntax

4. Swift Collection (Array)

개발자킹콩 2021. 1. 21. 16:32

// 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