该Go
语言的创造者写的:
Go不提供断言。它们无疑是很方便的,但是我们的经验是程序员将它们用作拐杖,以避免考虑适当的错误处理和报告。正确的错误处理意味着服务器在发生非严重错误后仍可继续运行,而不会崩溃。正确的错误报告意味着错误是直接的并指向重点,从而使程序员不必解释大型崩溃跟踪。当程序员看到的错误不熟悉代码时,精确的错误尤为重要。
您对此有何看法?
reflect.DeepEqual
,那么您当然不需要它。这很方便,但是却以性能为代价(单元测试是一个很好的用例)。否则,您可以进行任何适合于“集合”的相等性检查,而不会带来太多麻烦。
for
Go中的循环比较两个切片而无需反射(就像C一样)。这将是非常好的,有通用切片操作,虽然当指针和结构都参与的比较变得复杂。