삼항 연사자
에 대해 알아보도록 합시다.
삼항 연산자
true ? Text("삼항 연산자는 잘 실행 됩니다."): Text("0")
Nil-coalescing :
옵셔널 값을 풀어주는 개념으로 삼항 연사자
를 활용해서 쓸 수 있습니다.
연산자 란? 값을 확인, 변경, 결합하는 데 사용하는 특별한 기호나 문구
삼항 연사자
에서?
는 true
, :
는 false
라고 생각하면 좋은데,
예를 들어 useRedText
가 true
이면 yellow, fasle
이면 green으로 배경색을 바뀌게 하고 싶으면 아래와 같이 코드를 작성할 수 있습니다.
.background(useRedText ? Color.yellow : Color.green)
struct ContentView: View {
//useRedText를 false 색상으로 정해줌
@State private var useRedText = false
var body: some View {
ZStack {
Button("삼항연산자") {
//애니메이션효과와 함께
withAnimation {
//버튼이 토글되면 실행
self.useRedText.toggle()
}
}
.font(.largeTitle)
.foregroundColor(.black)
//배경색을 채워줌
.frame(maxWidth: .infinity, maxHeight: .infinity)
//useRedText가 true이면 yellow, false이면 green
.background(useRedText ? Color.yellow : Color.green)
//safeArea 부분까지 채워줌
.edgesIgnoringSafeArea(.all)
}
}
}
IF문
아래 코드처럼 일반적으로 If
문을 작성하면 컴파일이 실행되지 않는다는 것을 확인할 수 있습니다.
struct ContentView: View {
var body: some View {
if true {
Text("if 구문은 오류가 발생합니다.")
} else {
Text("X")
}
}
}
그 이유는 Swift
에서 삼항 연사자
는 표현식에 해당하고, if
문은 구문으로 분류되기 때문입니다.
따라서 삼항 연사자
는 단일 표현식으로 취급되어 return
키워드가 필요 없지만, if
문에서는 다음과 같이 텍스트 앞에서 각각 return
를 붙여 주어야만 오류 없이 실행됩니다.
struct ContentView: View {
var body: some View {
if true {
return Text("리턴 키워드를 명시하면 정상적으로 수행됩니다.")
} else {
return Text("O")
}
}
}
읽어주셔서 감사합니다🤟
'SWIFTUI > Grammar' 카테고리의 다른 글
SwiftUI : #1 Binding이란 무엇인가? (0) | 2021.02.11 |
---|---|
SwiftUI : State에 대해 자세히 알아보기 (0) | 2021.02.10 |
SwiftUI : @State, @ObservedObject / Struct를 Class로 (0) | 2021.01.25 |
SwiftUI : UIKit와 SwiftUI 구성요소 비교 (3) | 2021.01.24 |
SwiftUI : UserDefaults 정보 수집 및 저장 (1) | 2021.01.24 |