@discardableResult

@discardableResult에 대하여 알아봅니다.
Posted on 2022-06-03 by GKSRUDTN99
Swift&Xcode Swift

Xcode를 사용하다보면, 코딩 과정에서 발생하는 실수를 줄일 수 있는 경고를 자주 보여줍니다.

함수 안에서 return 아래에 있는 구문들은 실행되지 않는다는 경고나,

변하지 않는 변수를 사용할 때는 var 대신 let을 사용하라는 등의 경고를 보여줍니다.


그 중에서 @discardableResult와 관련된 경고는 바로

Result of call to - is unused입니다.


이 경고는 어떤 값을 반환하는 함수가 실행되고 난 뒤, 반환된 값이 사용되지 않으면 발생하는 경고입니다.

하지만, 해당 함수 앞에 @discardableResult를 추가하면, 그 함수가 값을 반환하고 사용되지 않더라도 경고를 보여주지 않습니다.


원래 보여야하는 경고를 보여주지 않는다는 점에서, @unknown default와 상반되는 기능을 하는 구문입니다.

@discardableResult
func foo() -> String {
    return "Hello"
}

// _ = foo()
foo()