공부/SWIFT

[SWIFT] 함수(종료되지 않는 함수, 반환값을 무시할 수 있는 함수)

알로하리미 2021. 3. 11. 09:46
728x90

1. 종료되지 않는 함수 Never  : 너 치명적인 오류다 보고하고 종료한다.

키워드 Never

종료되지 않는다 = 정상적으로 끝나지 않는 함수이다. = 비 반환 함수(Nonreturning fucntion) = 비번 환 메서드(Nonereturning method)

이 함수를 실행한다는 의미는 프로세스의 동작은 종료되는 것을 의미한다.

비반호나 함수 안에서는 오류를 던진다든가 , 중대한 시스템 오류를 보고하는 등의 일을 하고 프로세스를 종료하는 일을 한다. 비 반환 함수는 어디서든 호출이 가능하다

guard구문의 else 블록에서도 호출할 수 있다.

func carshAndBurn() -> Never {
    fatalError("Something Error")
}

crashAndBurn() //프로세스 종료후 오류 보고

func someFunction(isAllIsWell: Bool){
    guard isAllIsWell else {
        print("마을에 도둑이 들었습니다!")
        crashAndBurn()
    }
    
    print("All is wwell")
}

someFunction(isAllIsWell: true) // All is well
someFunction(isAllIsWell: false) // 마을에 도둑이 들었습니다.
//프로세스 종류 후 오류 보고

 

 

2. 반환 값을 무시할 수 잇는 함수 : 이 함수 반환 값은 사용 안 해도 되니깐 경고하지 마

키워드 @discardableResult

"이 함수에서 반환되는 값은 사용하지 않아도 돼"라는 것을 미리 예고

위의 키워드로 명시하게 되면 코딩 시 "반환 값 사용하지 않았다"라는 경고창이 뜨지 않는다.

func say(_ something: String) -> {
    print(something)
    return something
}

@dscardableResult func sayho(_ hoStr: String) -> String{
    print(something)
    return something
}

say("hi") //hi  리턴값을 사용하지 않았다라는 경고창 뜸.
syaho("ho") //ho 경고창 안뜸.