Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- changenotifierprovider
- Camera
- Snapshot
- multiprovider
- user
- signout
- divider
- borderRadius
- permission
- platformexception
- datetime
- swift 문법
- Firebase
- Swift
- setstate
- Navigator
- changenotifier
- consumer
- ListView.builder
- globalkey
- snackbar
- switch
- reference
- enum
- transform
- provider
- runTransaction
- controller
- 문법
- Stream
Archives
- Today
- Total
코딩하는 제리
[Swift] guard 문 (조건이 거짓이면 실행) 본문
- 표현식이 거짓으로 판단될 경우 수행될 else 절을 반드시 포함.
- else 절에 속한 코드는 현재의 코드 흐름을 빠져 나갈 수 있는 구문(return, break, continue, throw)을 반드시 포함해야함.
- 또는 다른 함수를 else 코드 블록 안에서 호출할 수도 있음.
- 특정 조건에 맞지 않을 경우 현재의 함수나 반복문에서 빠져 나갈 수 있도록 '조기 출구' 개념
guard <boolean 표현식> else {
// 표현식이 거짓일 경우 실행될 코드
<코드 블록을 빠져나갈 구문 (return, break, continue, throw)>
}
// 표현식이 참일 경우에 실행될 코드
- guard문은 값을 언래핑 하기 위해서 옵셔널 바인딩을 사용, 그 값이 10보다 작은지 검사
- 변수를 언래핑 할 수 없거나 그 값이 10보다 크면, else 절이 실행되어 에러 메시지 출력, 이 함수에서 빠져 나가도록 return 실행.
- 10보다 작은 값이면, guard문 아래에 있는 코드가 실행되어 그 값에 10이 곱해진 값이 출력.
func multiplyByTen(value: Int?) {
guard let number = value, number < 10 else {
print("10보다 크다.")
return
}
print(number*10)
}
multiplyByTen(value: 3) // 30
- 언래핑된 number 변수를 guard문 밖에 있는 코드에서 사용할 수 있다👍👍
- if문을 이용하여 언래핑된 변수는 사용불가.
var index: Int?
index = 3
var treeArray = ["A", "B", "C", "D"]
if let myValue = index {
print(treeArray[myValue])
} else {
// 여기서 옵셔널 바인딩으로 풀어진 myValue를 사용 못하지만
// gaurd는 guard문 밖에서 사용가능하다.
}
'iOS > SwiftUI' 카테고리의 다른 글
[Swift] 클래스 메서드 (타입 메서드) (0) | 2022.01.12 |
---|---|
[Swift] call by reference (0) | 2022.01.12 |
[Swift] 타입 검사, 범위 연산자, nil 합병 연산자 (0) | 2022.01.12 |
[Swift] swift 형변환 (0) | 2022.01.11 |
[Swift] swift 옵셔널 (0) | 2022.01.07 |
Comments