함수 - 함수의 중첩과 영역 / guard let
08 Nov 2017 | swift 함수함수
함수의 중첩과 영역
중첩되는 함수는 다른 함수 안에서 선언되고 구현된다. 따라서 선언된 곳 밖에서는 사용 할 수 없고 함수가 다른 함수 안에서만 어떤 일을 해야할 때 의미가 있다.
func areaOfTriangleWith(base: Double, height: Double) -> Double {
let numerator = base * height
func divide() -> Double{
return numerator / 2
}
return divide ()
}
areaOfTriangleWith(base: 5.0, height: 4.0)
//함수 자체를 리턴할 수 있다.
//다른 곳에서(선언한 함수 밖의 시야) divide()를 호출하면 에러남
guard let / 함수에서 중도에 빠져나오기
guard let을 사용해서 옵셔널 바인딩하고 함수 중간에 빠져나오기
func greetingMiddleName(fromfullname name:(String, String?, String)) {
guard let middle = name.1 else {
print("Hey there!")
return
}
print ("Hey (middle) there!")
}
greetingMiddleName(fromfullname: ("Matt",nil,"Mathew")) //Hey there!
greetingMiddleName(fromfullname: ("Matt","Danger","Mathew")) //Hey Danger there!
guard let - middle name은 튜플의 인덱스1번째 값인 옵셔널이다.
옵셔널 바인딩이 된 후에 middle이 nil값이 아니라면 guard문 밖의 “Hey (middle) there!” 가 실행되고, nil이라면 “Hey there!” 구문이 실행됨.
##
Comments