
삼항 연사자에 대해 알아보도록 합시다.
삼항 연산자
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 |





