该Go语言的创造者写的:
Go
Go 不提供断言。不可否认,它们很方便,但我们的经验是,程序员将它们用作拐杖,以避免考虑正确的错误处理和报告。正确的错误处理意味着服务器在非致命错误后继续运行而不是崩溃。正确的错误报告意味着错误是直接的、切中要害的,从而使程序员免于解释大的崩溃跟踪。当看到错误的程序员不熟悉代码时,精确的错误尤其重要。
您对此有何看法?
不,assert只要您按预期使用它就没有问题。
assert
也就是说,它应该用于在调试期间捕获“不可能发生”的情况,而不是正常的错误处理。