Notice
Recent Posts
Recent Comments
Link
관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - swift] 표현식을 이용한 조건문, 삼항 연산자, switch - enum 리펙터링 (Swift5.9) 본문

Refactoring (리펙토링)

[iOS - swift] 표현식을 이용한 조건문, 삼항 연산자, switch - enum 리펙터링 (Swift5.9)

jake-kim 2023. 11. 10. 01:51

조건문 리펙터링

  • Xcode15 이상, Swift5.9부터 조건문들을 모두 하나의 표현식으로 간주할 수 있으므로 더욱 간결하게 표현이 가능

if, else 리펙터링

  • swift5.9 미만 버전에서는 if, else 분기문에 따라 값이 달라질 때 바로 위에 UIColor라는 타입만 명시하는 프로퍼티를 선언
let count = Int.random(in: 0...100)

let color: UIColor
if count % 2 == 0 {
    color = .blue
} else {
    color = .red
}
  • 또는 closure를 사용하여 반환 
let newColor = {
    if count % 2 == 0 {
        return UIColor.blue
    } else {
        return .red
    }
}()
  • 조건문을 사용할 때 closure없이 사용 가능하고 return키워드 생략도 가능
let simpleColor = if count % 2 == 0 { UIColor.blue }
                  else { UIColor.red }

switch문 리펙터링

  • switch문도 조건문이기 때문에 간결하게 표현이 가능

리펙터링 전) 클로저 사용

enum NumberType {
    case one
    case two
    case three
    case other
}

// refactoring 전
let n = Int.random(in: 0...5)
let type = {
    switch n {
    case 1: return NumberType.one
    case 2: return .two
    case 3: return .three
    default: return .other
    }
}()

리펙터링 후) 클로저와 return 생략

let newType = switch n {
case 1: NumberType.one
case 2: NumberType.two
case 3: NumberType.three
default: NumberType.other
}

 

* 전체 코드: https://github.com/JK0369/o1a1

Comments