回答

收藏

断言是邪恶的吗?

技术问答 技术问答 436 人阅读 | 0 人回复 | 2023-09-12

该Go语言创造者写道:$ i+ r9 \7 R0 n/ m8 J
Go 不提供断言。不可否认,它们非常方便,但我们的经验是,程序员使用它们作为拐杖,以避免考虑正确的错误处理和报告。正确的错误处理意味着服务器在非致命错误后继续运行,而不是崩溃。正确的错误报告意味着错误是直接和关键的,以避免程序员解释大的崩溃跟踪。当错误的程序员不熟悉代码时,准确的错误尤为重要。
& g: d* h1 k8 L9 R! V1 g3 q4 p
你觉得这个怎么样?9 l* u7 C6 W6 [3 {8 ~3 f% D
                                                               
4 I1 A" O* k% c9 h    解决方案:                                                                9 J, O& [( d* w* s6 M* t, y
                                                                不,assert只要按预期使用,就没问题。0 j( B. N) g" H  p# }  e
也就是说,它应该用来捕捉调试过程中的不可能,而不是正常的错误处理。
' n  b' \  Z2 g4 U/ I3 I; a- \断言:程序逻辑本身的故障。# A" m7 ~9 g) v) P+ N
错误处理:错误的输入或系统状态不是由程序中的错误引起的。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则