【swift2.2】【備忘】オペレーターメソッド
こんばんは。石井です。
オペレーターメソッドに衝撃を受けたので備忘。
同一クラスを+で演算させようとした時(classA = classA + classA)に、
「Binary operator '+' cannot be applied to two 'クラス' operands」
のようなエラーになることがある。
この+演算を可能とするのが
オペレーターメソッドとなる。
class MyPosition{ var x:Int=0 var y:Int=0 init(x:Int,y:Int){ self.x = x self.y = y } } //オペレーターメソッド メソッド名が 『+』記号 func + (pos1:MyPosition, pos2:MyPosition)->MyPosition{ return MyPosition(x: pos1.x+pos2.x,y: pos1.y+pos2.y) }
あとは呼び出し元で単純に+記号で演算すれば、
結果が返ってくる。
func disp(){ let p1 = MyPosition(x: 1,y: 1) let p2 = MyPosition(x: 2,y: 3) let p3 = p1+p2 print(String(p3.x)+":"+String(p3.y)) //結果 → 3:4 }
なんとなく使えそうな気がします。