Switch문
- Swift에서 Switch문에 break는 생략된다.
- Switch문에 있는 case문에서는 범위를 지정할수 있다.
- case문에서 where문으로 부가적인 조건을 추가할 수 있다.
예) var temp = 32 switch (temp) { case 0...10 where temp % 2 == 0: print("춥다") case 11...20 where temp % 2 == 0: print("따뜻하다") case 21...30 where temp % 2 == 0: print("덥다") default: print("온도 측정 불가")
- Swift는 일치하는 case문을 만나면 자동으로 빠져나온다.
* 하지만 빠져나가지 않고 계속 아래로 내려가게 하려면 fallthrough문을 사용하면 된다예) var temp = 32 switch (temp) { case 0...10 where temp % 2 == 0: print("춥다") fallthrough case 11...20 where temp % 2 == 0: print("따뜻하다") fallthrough case 21...30 where temp % 2 == 0: print("덥다") fallthrough default: print("온도 측정 불가")
함수
- Swift에서의 함수형태
func 함수이름(외부 매개변수 내부 매개변수 : 자료형) -> 리턴형 { reutn 내부 매개변수 } 함수 호출시) 함수명(외부 매개변수:값)
외부 매개변수 생략 시 내부 매개변수명이 외부 매개변수 역할을 한다.
예) C, C++) int add(int x, int y) { return(x+y); } add(10,20); -------------------------------- Swift) fun add(x: Int, y: Int) -> Int { return(x+y) } add(x:10, y: 10)
- 외부 매개변수 생략 시 내부 매개변수명이 외부 매개변수 역할을 한다.
외부 매개변수 생략 시1) fun add(x: Int, y: Int) -> Int { return(x+y) } add(x:10, y: 10) // 외부 매개변수 생략하는 경우 호출할 때 내부 매개변수명을 사용 2) fun add(_ x: Int, _ y: Int) -> Int { return(x+y) } add(10, 20) // 외부 매개변수를 생략한다는 의미인 _를 사용하는 경우 함수 호출 시 매개변수 생략 3) fun add(_ x: Int, two y: Int) -> Int { return(x+y) } add(10, two: 10) // 첫 번째 외부 매개변수명만 생략하는 경우 함수 호출 시 첫 번째 매개변수만 생략
inout
- call by reference하고싶은 매개변수의 자료형 앞에 inout을 사용한다.
- call by reference하고싶은 변슈에 &을 붙여서 호출한다.
예) var x = 5 func double(value: inout Int) -> Int { value += value return(value) } print(double(value : &x)) // 10
Closer 표현식
- 독립적인 코드 블록이다.
일반적인 함수) func hi(a: Int, b: Int) -> Int { return(a+b) } Closer 표현식) let hi = { (a: Int, b: Int) -> Int in return(a+b) }
- in이 있으면 Closer 표현식이라고 생각하면 된다.
- 클로저 표현식은 매개변수를 받거나, 값을 반환하도록 만들 수 있다.
후행 클로저
클로저가 함수의 마지막 매개변수 이름을 생략하고 소괄호 외부에 클로저를 구현한다.