Go
言語の作成者は書きます:
Goはアサーションを提供しません。それらは間違いなく便利ですが、私たちの経験では、プログラマーはそれらを松葉杖として使用して、適切なエラー処理やレポートについて考えることを避けてきました。適切なエラー処理とは、サーバーがクラッシュするのではなく、致命的ではないエラーの後も動作を継続することを意味します。適切なエラー報告とは、エラーが直接的かつ適切なものであることを意味し、プログラマーが大きなクラッシュトレースを解釈するのを防ぎます。正確なエラーは、エラーを見ているプログラマがコードに精通していない場合に特に重要です。
これについてどう思いますか?
reflect.DeepEqual
、確かにそれは必要ありません。便利ですが、パフォーマンスが犠牲になります(単体テストは良いユースケースです)。それ以外の場合は、あまり問題なく、「コレクション」に適切な等価チェックを実装できます。
for
Goのループを使用して(Cのように)、反射なしで2つのスライスを比較できます。考えポインタと構造体が関与しているとき、比較は複雑になるものの、一般的なスライスの操作を持っていることは本当に素晴らしいこと。