私は現在、いくつかの参照を探しています、外のリンゴの迅速なプログラミングセットタイプのメモリ空間の基準とし、以下の擬似コードを考えると基本的な操作(和、積、排他、減算など)スウィフト:基本操作のコピーまたはポインタの結果が<Object>に設定されていますか?
結果:
をvar entities = Set<GKEntity>()
var subSetA = Set<GKEntity>()
var subSetB = Set<GKEntity>()
各サブセットはGKEntityのサブクラスを持ち、私のアプリケーションでは私が使用するいくつかのルーチンで呼び出されます。
これらのサブセットの和集合を使用すると、すべてのサブセットのスーパーセットまたはすべてのサブセットの和集合として設定されます。
これは、スーパーセットがサブセット内の要素のコピーであること、またはポインタのみであることを意味しますか?
これは、操作で新しいメモリアドレスをコピーまたは割り当てする必要があるかのように、私は記憶領域の使用方法を尋ねるので、私は要素を格納する別の戦略を使用する必要があります。
純粋に構造的な観点からは、これらはメモリアドレスへのポインタとなることを意味する「浅い」コピーであると仮定しますが、すべてのサブセットの結合としてスーパーセットを作成したら、スーパーセットに反映されるか、またはスーパーセット上で操作が行われる場合には特定のサブセット上に表示される。
・ホープ、この質問が有効
ok、concise。あなたが投稿したリンクのGKEntityクラスの適合性にHashableは含まれていませんが、それはxcodeのドキュメントにあります。これは両方向に進むということですか?スーパーセット操作はサブセットに反映されますか?それは人生をもっと難しくしないでしょうが、理解を完了するように求めるだけです。 – triple7
セットは 'GKEntity'sの参照を格納するので、両方向に行きます。私が与えたコードを自分で試してみませんか?それは楽しみになるだろう! @ triple7 – Sweeper
おそらく(将来のこの読者の読者のために)セットは順序付けられていないコレクションであると言えるでしょう。なぜなら、 '' setA' _の最初のアイテムは '2 'になります(混乱するかもしれませんそれはセットの定義のセットに追加された2番目のアイテムです)。 – dfri