4-1. 배열(Collection - Array)

스위프트는 값을 저장하기 위한 array, set, dictionary 3가지의 원시적 콜렉션 타입을 제공한다. Array는 컬력센 값에 순서를 가지고 있다. Set은 반복되지 않은 값에 순서가 없는 컬렉션이다. 마지막으로 딕셔너리는 키-값 쌍의 순서가 없는 컬렉션이다.

배열(Array)

  1. 배열타입의 구문은 Array로 작성한다. 또한 [Element] 형식으로도 작성이 가능하다.

    var someInts : Array<Int> = []
    var someInts : [Int] = []
    //다음의 두 친구는 같은 의미이다.
  2. 빈 배열의 생성은 초기화 구문을 통해 가능하다.

    var someInts : [Int] = []
    //다음과 같이 초기화 가능하다.
  3. 배열은 같은 기본값으로 설정 후 크기를 고정해서 배열을 생성하는 초기화도 제공한다.

    var threeDoubles = Array(repeating: 0.0, count: 3)
    //다음의 배열은 [0.0, 0.0, 0.0]의 값을 가진다.
  4. 배열을 더해서 생성이 가능하다.

    var twoDoubles = Array(repeating: 2.5, count: 2)
    var fiveDoubles = threeDoubles + twoDoubles
    //다음과 같이 하게 되면 모든 값들이 추가된다.
  5. 배열은 문자열 리터럴로 생성도 가능하다.

    var shoppingList : [String] = ["Eggs", "Milk"]
    //다음과 같은 문자열 배열로도 가능하다.

    배열의 접근과 수정

    배열의 접근과 서중은 메서드와 프로퍼티를 사용해 수정이 가능하다.

  6. 배열의 아이템 갯수 체크를 위해서는 count프로퍼티를 통해 확인이 가능하다.

    print(shoppingList.count)
     //2를 출력하게 된다.
  7. 부울 isEmpty프로퍼티를 통해서 count값이 0인지 아닌지를 식별할 수 있다.

    if shoppingList.isEmpty {
    	print(0)
    }
    //배열이 비어있는 경우 조건문을 수행하게 되고 0을 출력한다.
  8. 배열의 append(_:) 메서드를 호출해서 배열 끝에 새로운 아이템 추가가 가능하다.

    shoppingList.append("Flour")
    
    //쇼핑아이템은 모두 달걀, 우유, 밀가루로 3개가 된다.
  9. 덧셈 대입 연산자를 통해서 배열에 추가가 가능하다.

    shoppingList += ["candy", "cookie"]
    //기존의 배열은 총 달걀, 우유, 밀가루, 캔디, 쿠키를 가진 배열이 된다.
  10. 배열의 서브 스크립트를 통해서 값을 가져올 수 있다.

    print(shoppingList[0])
    //배열의 인덱스는 0에서 시작되며, 여기에서는 "Eggs"를 출력하게 된다.
    //이 떄에 인덱스는 반드시 배열의 범위를 충족하는 유효한 인덱스여야 한다.
  11. 서브스크립트 구문을 통해 값을 한 번에 변경 가능하다.

    shoppingList[0..2] = ["Banana", "Cabbage", "Tofu"]
    
    //이렇게 되는 경우 앞으 3가지인 달걀, 우유, 밀가루가 바나나 양배추, 두부로 변하게 된다.
  12. 특정 인덱스에 값을 대입할 경우 insert(_at:)메소드를 사용한다.

    shoppingList.insert("Burn", at: 0)
    
    //이렇게 하게되면 가장 맨 앞에 새로운 아이템을 추가하게 된다.
  13. remove(at:)메서드를 통해 배열의 아이템 삭제가 가능하다.

    shopping.remove(at: 0)
    shopping.removeLast()
    
    //가장 앞에 있는 달걀 값을 삭제한 나머지를 배열값으로 가지게 된다.
    //가장 마지막 값을 삭제하고 나머지를 배열 값으로 가지게 된다.

    배열 반복

  14. for루프를 통해서 배열의 전체값을 알 수 있다.

    for value in shoppingList {
    	print(value)
    }
    //달걀
    //우유
    //밀가루
    //바나나
    //양배추
    .
    .
    . // 다음과 같이 앞에서 부터 순서대로 배열값을 조회 가능하다.
  15. enumerated() 메서드를 사용하면 인덱스와 값을 동시에 조회할 수 있다. 이는 정수와 아이템을 조합하여 튜플로 반환해준다.

    for (index, value) in shoppingList.enumerated() {
    	print("item \(index + 1) : \(value))
    //item 1 : eggs
    //item 2 : Milk
    //item 3 : Flour
    .
    .
    .
    
    //다음과 같이 튜플 값을 통해서 인덱스와 밸류를 동시에 조회할 수 있다.

좋은 웹페이지 즐겨찾기