我用迅捷的语言测试了断言,但有点困惑。你能给我解释一下assertassertionFailurefatalError函数之间的区别吗?
我知道@noreturn属性(nicely explainedby seven oglesby),但我不理解,这些函数什么时候评估,什么时候被忽略。
函数assertfatalError只在调试模式下发生,我测试了这种行为,它是正确的。但是assertionFailure也会停止版本配置中的程序。文件保留:
发生致命错误,程序应在调试模式下停止执行。在优化的构建中,这是一个noop。
那么我不明白,为什么不忽略非调试模式下对该方法的评估呢?有没有人有这方面的经验?

最佳答案

实际上,assert只在调试模式下进行计算,但无论配置如何,fatalError都会发生。这是故意的。
然而,assertionFailure也会发生,不管配置如何,尽管您引用了文档。据我所知,assertionFailure的行为不正确,或者文档不正确。

09-07 14:07