問題タブ [hashable]

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.

0 投票する
1 に答える
225 参照

swift - スウィフト 1.2::0: エラー: '[セット]' は 'Hashable' に変換できません

xCode 6.3 のコンバーターを使用してプロジェクトを Swift 1.2 に変換しましたが、その後も多くのエラーが残っていましたが、すべて手動で修正しました。

コンパイルすると、次のようになります
<unknown>:0: error: '[Set<T>]' is not convertible to 'Hashable'

Set を使用する唯一の場所は次のとおりです。

プロジェクトのクリーンアップを試み、DerivedData フォルダーの削除も試みましたが、解決しませんでした。

検索しましたが、同じ問題を抱えている人は見つかりませんでした。
誰でもこれを解決する方法を知っていますか?

0 投票する
1 に答える
335 参照

swift - nil は hashable に変換できません。

データソースを使用して項目をフェッチするカスタム コントロールがあります (NSTableView のように)。データソースは、ハッシュ可能である限り、任意の型を返すことができます。アイテムは、プライベート ディクショナリのキーとして使用されます。

インターフェイス ビルダーの UI にコントロール (カスタム ビュー) が追加されます。

nil はハッシュ可能に変換できないため、nil パラメータを使用してデータソースをクエリすると問題が発生します。

これを行う適切な方法は何ですか?

}

0 投票する
3 に答える
1933 参照

swift - DictionaryはSwiftでEquatableプロトコルをどのように使用しますか?

この質問を解決するために、Hashable Protocol を実装するカスタム構造体をいじってみました。==を入力するときにハッシュ衝突があるかどうかに応じて、等価演算子オーバーロード()が呼び出される回数を確認しようとしていDictionaryます。

アップデート

@mattは、Hashable プロトコルを実装し、どのくらいの頻度hashValue==呼び出されるかを示すカスタム構造体のよりクリーンな例を書きました。以下に彼のコードをコピーしています。私の元の例を見るには、編集履歴をチェックしてください。

これにより、次の結果が生成されます。

Hashable は Equatable を使用してハッシュの衝突を区別するため (とにかくだと思います)、func ==()ハッシュの衝突が発生した場合にのみ呼び出されることを期待します。ただし、上記の @matt の例ではハッシュの衝突はまったくなく、まだ==呼び出されています。ハッシュの衝突を強制する他の実験 (この質問の編集履歴を参照) では==、ランダムな回数呼び出されたようです。

ここで何が起こっているのですか?

0 投票する
1 に答える
12967 参照

python - TypeError: unhashable type 'list' の解決方法

最初のリストの特定のコンテンツを変更して出力を送信したい 2 つのリストがありますが、変更しようとするとエラーが発生します TypeError: unhashable type: 'list'。私はmongodbでpythonを使用しています。

2つのリストは

必要な出力は

ここで私が犯している間違いは何ですか?

希望の出力を得る方法を教えてもらえますか。

0 投票する
2 に答える
26890 参照

python - ユニオンで `set()` に辞書を追加する

興味深いものに出くわしたので、質問してみようと思いました。

に辞書を追加するsetと、辞書が完全な辞書として追加されると想定していましたが、そうではありません。キーのみが追加されます。

を使用して追加しようとするとset.add()、エラーが発生します。

明らかに、この動作はリストとは大きく異なります。

ドキュメントでは、セットはハッシュ可能なオブジェクトの順序付けられていないコレクションであると述べられています。これは、上記の問題のいくつかへのヒントです。

質問

何が起きてる?セット項目はハッシュ可能である必要があるため、明らかに、キーを でセットに追加するだけである理由に関係しています.union()が、なぜ ? でエラーが発生するの.add()ですか?

リストからのセットの動作の違いの背後にある使いやすさの理由はありますか?

基本的にリストのように機能するが、一意のアイテムのみを保持するデータ型が Python (またはライブラリ) にありますか?

0 投票する
1 に答える
1211 参照

xcode - メタタイプ (.Type) を辞書のキーとして使用できますか?

私はこのようなものを持っています:

私のsize辞書定義では、Xcode エディターから次のリアルタイム エラーが発生します。

タイプ「AnyObject.Type」はプロトコル「Hashable」に準拠していません

私がやろうとしていることをどのように達成するのsizeですか? つまり、型を特定のサイズの辞書にリンクする辞書を作成するにはどうすればよいでしょうか?

私はObjectIdentifierそれが私を助けると思ってHashableいますが、それを使用する方法、またはそれが正しい選択であるかどうかはわかりません.

0 投票する
2 に答える
130 参照

arrays - 重複した範囲を持つ配列から一意の範囲を持つ配列を取得する方法は?

重複した番号を持つ配列から一意の番号の配列を取得できます

一意の範囲を持つ配列が必要です

たとえば、このように範囲が重複している配列から。

String、Int、Double、および Bool のみが既定でハッシュ可能であるため、Set で同じアプローチを使用することはできません。上記のアプローチを使用できるように範囲をハッシュ可能にする方法は?