- if, else문의 조건은 항상 Bool타입이어야한다. ( C언어에서 혹은 Python에서처럼 if 1 => true 혹은 if 0 => false 로 해석될 수 없다)
특징
- 1. C에서는 정수타입만! but Swift에서는 다양한 타입이 대상이 될 수 있다.
- 2. 명확히 한정적인 값(ex. 열거형)이 아닐 때는 default를 꼭 작성해야함
- 3. 각 case에서 범위 연산, where를 사용하여 확장 가능!
- 4. 각 case에서 break는 기본적으로 수행된다. 따로 작성 X
( 해당 Case 실행 후, switch문을 벗어나지 않고 아랫쪽 case까지 탐색하고싶다면 fallthrough 키워드 사용!)
- 5. 와일드 카드 식별자를 활용하여 switch문에서 튜플을 활용할 떄, 특정 위치를 무시할 수 있다.
- 6. case문에 where절을 추가하여 추가적 조건을 달아줄 수 있다.
ex. case "사원" where 인턴인가 == false:
~~~
case "사원" where 연차 < 2 && 인턴인가 == false:
~~~~
- switch문의 exhaustive 특성과 @unknown
아래와 같이 한정된 범위의 모든 항목들을 처리할 case를 작성하지 않으면, exhaustive해야한다는 경고로 컴파일이 불가능하다.
아래와 같이, 새롭게 열거형에 추가될 항목을 대비하여 case default: 혹은 case _:를 작성해놓는다면, 새로운 항목이 enum에 추가되어도 오류가 뜨지 않는다.
하지만 새롭게 추가될 항목에 대한 대비를 @unknown과 함께 작성해놓는다면, 새로운 값에 대한 개별 switch case를 작성하라는 경고를 받을 수 있어 실수를 보다 쉽게 찾을 수 있다.
- 1. C에서의 do-while문은 repeat-while문으로 구현
- 2. for문 혹은 while문 앞에 "구문 이름표"를 붙여 여러개의 반복문을 동시에 break할 수 있다!!!!
아래와 같이, j ==105가 되는 순간 바깥 Loop까지 한 번에 종료할 수 있다.
( 이와 같은 기능이 없다면, is_105라는 Bool 틱을 변수로 두어 true로 체크해주고, 바깥 for문에서 매 번 is_105 == true인지 확인하고 break해주는 코드를 실행했어야했다.)
Swift언어6 - 함수형 프로그래밍_클로저 (0) | 2022.10.01 |
---|---|
Swift언어 복습노트 5 - 구조체와 클래스 그리고 instance(작성중) (0) | 2022.09.10 |
Swift언어 복습노트 4 - 함수와 Optional (1) | 2022.09.10 |
Swift언어 복습노트2 - 컬렉션 타입과 연산자 (0) | 2022.05.23 |
Swift언어 복습노트1 - data type (0) | 2022.05.21 |