iOS 스터디 Part2 Range

값의 간격이며 하한과 상한으로 정의되고, 두 가지 범위 연산자를 사용하여 범위를 생성합니다

Advanced Swift (by Chris Eidhof) 책을 번역 후 참고하여 작성하였습니다.

Protocols.

  • Range: 왼쪽과 오른쪽 값을 포함하는 범위 생성(…)

  • ClosedRange: 왼쪽은 포함하고 오른쪽 값은 포함하지 않는 범위 생성(..<)

    let singleDigitNumbers = 0..<10 
    Array(singleDigitNumbers) // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    let lowercaseLetters = Character("a")...Character("z")
    Array(lowercaseLetters)
    
    (0...10).lowerBound // 1
    (0...10).upperBound // 10
    (0...10).count      // 10
    (0...10).isEmpty    // false
    (0...10).contains(1)    // true
    (0...10) ~= 1 // true

  • PartialRangeFrom: 시작값 부터 계속 올라간다(중단점이 없으면 무한 루프)

  • PartialRangeThrough: 이전 값부터 마지막 값까지

  • PartialRangeUpTo: 이전 값부터 마지막 값을 포함하지 않는 값까지

  • Range Expressions

    • 요소가 범위 내에 포함되어 있는지

    • 컬렉션이 주어지면 완전히 지정된 범위를 계산

  • RangeSet: 동일한 요소를 범위를 이용하여 병합하는 방법

Check Points.

정수인 경우만 Collection Protocol 준수하여 Loop 가능

“RangeSet is more storage-efficient because it can merge adjacent values into a single range.”

⇒ RangeSet은 범위로 중복을 제거하여 Set과 비교할 때 저장 공간을 더 효율적으로 사용합니다.

Last updated