2016-03-20 8 views
0

ユーザー定義クラスでプロパティを操作して設定操作を実装する方法は誰でも知っていますか?例えば:swift set intersect、union、subtract

class myClass { 
    var figure: Int! 
} 

let classObj1 = myClass() 
classObj1.figure = 1 

let classObj2 = myClass() 
classObj2.figure = 2 

let classObj3 = myClass() 
classObj3.figure = 1 

let set1: Set = [classObj1] 
let set2: Set = [classObj2, classObj3] 

のような任意の方法がある:(擬似コード)

set2.substract(set1) {s2, s1 in s2.figure == s1.figure} 

は...ので、期待される結果は[classObj2]ありますか?

ご意見ありがとうございました!

答えて

1

確かに。 ==figureの値を比較するようにMyClassをHashableおよびEquatableに適合させます。例:

class MyClass : Hashable { 
    var figure: Int 
    init(f:Int) {figure = f} 
    var hashValue : Int {return figure} 
} 
func ==(lhs:MyClass, rhs:MyClass) -> Bool { 
    return lhs.figure == rhs.figure 
} 
+0

独自のコードを記述してください。私はあなたが質問した、すなわち、あなたのカスタムクラスのSetについて記述したように、「減算する」方法をどのようにするかという答えを出しました。あなたが私の答えを理解していないなら、それをアップヴォートしたり受け入れたりしないでください。 – matt

+0

完了!ありがとうございました。 –