你如何标记一个方法是致命的,比如“fatalError”?

How can you mark a method that it is fatal, like `fatalError`?

我们有一个特殊的日志记录函数来表示特定类型的崩溃,因此,它在内部调用 fatalError。但是,与 fatalError 不同的是,当我们在 guard 语句中使用它时,它仍然会抱怨我们没有退出 guard.

的范围

我检查了源代码和 fatalError returns -> Never 所以我试过了,但也没有用。我也没有看到任何应用于它的属性可能会告诉编译器 'this is the end of the road'.

那么是否可以拥有自己的 fatalError 类方法?

func myFatalError(memberName:String = #function) -> Never {
    let message = "Failed in \(memberName)" 
    NSLog(message)
    fatalError(message)
}

正如其他人所指出的,问题出在我的机器上。以下(返回 'Never')按预期工作。

func myFatalError() -> Never {
    print("Doing something fatal")
}