공부 연습장 :-)

함수 - 함수의 중첩과 영역 / guard let

|

함수

함수의 중첩과 영역

중첩되는 함수는 다른 함수 안에서 선언되고 구현된다. 따라서 선언된 곳 밖에서는 사용 할 수 없고 함수가 다른 함수 안에서만 어떤 일을 해야할 때 의미가 있다.

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