#php Editor Baicao Go スライスと NaN 要素の比較は、単体テストでよくある問題です。スライスを扱うとき、2 つのスライスが等しいかどうかを比較する必要があることがよくありますが、スライスに NaN 要素が含まれている場合、比較は複雑になります。 NaN は特別な浮動小数点数であり、数値ではないことを意味します。 Go では、数学パッケージの IsNaN 関数を使用して、浮動小数点数が NaN かどうかを判断します。スライス内の各要素を反復処理し、IsNaN 関数を使用して NaN かどうかを判断することで、スライス比較演算を実装できます。
単体テストで 2 つのスライスを比較する必要があります。assert
パッケージでこの問題は解決すると思いますが、nan では機能しません。
出力は次のとおりです:
リーリーnan のプロパティの 1 つがそれ自体と等しくないことはわかっていますが、その一方で関数から期待どおりの結果を受け取ります。
この問題の解決方法を知りたいのですが、簡潔な単体テスト アサーションと明確な出力を取得するにはどうすればよいですか?
代わりに、assert
の使用を避け、両方のスライスの各要素で math.isnan
を呼び出すこともできますが、これは単体テストでは非常に冗長に見えます。
github.com/google/go-cmp/cmp パッケージを使用すると、より複雑な比較が可能になります。 cmpopts.equatenans を使用すると、nan を含む可能性のあるデータ構造を簡単に比較できます。
リーリー以上が単体テストで Go スライスと NaN 要素を比較するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。