問題タブ [equatable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arrays - Swift で Equatable を比較する方法
そのような2つの配列の複数のセットがあります。サードパーティから入手しています。
これらの配列内のオブジェクトのタイプについて知っています (コンパイル時)。例として、最初の要素は aStringで、2 番目の要素は anIntです。
私は現在、そのような配列の各セットを比較しています (配列は同種ではないことに注意してください)。
各セットに異なるタイプが含まれていることが最大の問題です。その結果、それぞれに 5 つの要素を持つ 10 セットの配列があると言えます。特定の型と比較に 10*5 の明示的な変換を行う必要がありました。
そのような2つの配列を比較できる共通のメソッドを記述できるようにしたい(すべての型を指定する必要はありません)
私は道を下り始めました。ただし、オブジェクトをキャストする必要があるかどうかもわかりません。やってみEquatableました。ただし、swift はそれを直接使用することを好みません。だから、そのようなものはうまくいきません
この配列の各オブジェクトは Equatable になります。ただし、この場合の使用方法はわかりません。
swift - Swift 2.2 でのプロトコル「Equatable」への「Generic」の冗長な準拠
コンパイル中に Equatable でエラーが発生しました。リストにfindまたはcontainsメソッドを追加して、値を確認したかったのです。 以下の私のコード
}
エラーが発生しました。NSCoding と NSobject を使用しているためですか?
swift - Swift 2.2、Contains メソッドが機能しない
正しく動作しないメソッドが含まれており、オブジェクトと一致していても誤った結果が得られますか?
以下の私のコード
ViewController のチェックイン
nsimage - NSImages の等価性のテスト
NSPanel に同じように構成された複数の NSImageView オブジェクトがあり、すべてドラッグ アンド ドロップ モードが有効になっています。含まれている画像をクロスチェックして、重複にフラグを立てたいと思います。しかし、1 つの小さな gif または jpeg を 2 つのコントロールにドロップすると、明らかなテストは常に失敗します。
NSImage の等価性の意味を誤解していますか? 別の方法はありますか?
arrays - Swift indexOfの一貫性のない動作
Swift のindexOf機能との一貫性のない動作に直面しているようです。
indexOfSwift には次の 2 つの関数があり
ます
。Equatablearray.indexOf(obj)array.indexOf{$0 == obj}
演算子が定義されているNSObjectサブクラスがあり==ます。つまり、に準拠しているEquatableため、両方の関数がまったく同じように機能すると想定しています(例のクロージャーを使用)。
ただし、この1stメソッドは一貫性のない動作をします。特にnil、インスタンスが配列に存在しないオブジェクトで呼び出されたときに戻ります。
問題を説明するために、コメント付きのサンプルコードを提供します。
NSObjectこの問題は、サブクラスでのみ再現可能です。メソッドに変更Obj: NSObjectすると、期待どおりに動作します。つまり、戻ります。Obj: EquatableindexOf()2
問題は、これをバグと見なすことができるかどうかです。
私の仮定は、オーバーロードされた演算子ではなく、メソッドをarray.indexOf(object)呼び出すことです。isEqualNSObject==
私の解決策:
私は使用しますarray.indexOf{$0 == object}
