OrNilフィルター・バリアントの理解

OrNilフィルター・バリアントとは

フィルター・バリアントは、単一のタスクに対するさまざまなアプローチを区別し、単一のタスクに関連するグループにまとめられます。 ほとんどの場合、フィルター・バリアントは同じ結果を得るために異なるアルゴリズムまたは異なる入力データセットを使用します。 OrNilフィルター・バリアントの場合、違いはエラー処理の出力データ型にあります。 OrNilフィルター・バリアントは、 フィルターが入力で非空のデータ・コレクションを期待し、それが存在しない場合に実行を停止させる代わりに、 ドメインエラーをスキップして実行をスキップできるようにします。この場合、関連するすべての出力はNilの値に設定されます。

なぜOrNilフィルター・バリアントが導入されたのか

RegionMassCenterGetArrayElementPathBoundingRectangleなどのフィルターは、特定の属性を値に基づいて抽出するために入力で非空のデータ・コレクションを期待します。 コレクションが空で、Unsafeバリアントが使用されている場合、実行はドメインエラーで停止します。 プログラムを停止する代わりに単純にこのような操作をスキップすることが有益である場合、SkipEmpty(Collection)フィルターを使用して、 実行を条件付き処理に変換し、コレクションが空の場合は完全にスキップできます。 OrNilフィルター・バリアントは、 これに対して少ない作業が必要であり、同じ機能を提供するため、自然な進化です。

OrNilフィルター・バリアントはいつ使用するべきか

入力データが無効な場合にフィルターに供給された後に実行を停止する代わりに、それをスキップする必要がある場合に、OrNilフィルター・バリアントを使用します。

OrNilフィルター・バリアントはいつ実行をスキップするか

フィルターによって条件は異なります。ほとんどの場合、主な条件は入力での空のデータ・コレクションです。いくつかのOrNil フィルター・バリアントには、それらのヘルプページで説明されている追加の条件があるかもしれません。ただし、 OrNilフィルター・バリアントは、ドメイン外の値(負の配列インデックスなど)の場合は引き続きドメインエラーをスローします。

RegionMassCenterが空の入力領域でドメインエラーをスローしています。プログラムの実行は停止しています。

RegionMassCenterSkipEmptyRegionで導入された条件付き処理により、実行されていません。プログラムの実行は続行されます。

RegionMassCenterのOrNilバリアントは安全に実行され、その出力に条件付き処理を導入しています。プログラムの実行は続行されます。