ミライスタート TECH系ブログ

株式会社ミライスタートのエンジニア達が気になったTECH系の記事等をアップしています!

【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
  }


参考
developer.apple.com


なんとなく使えそうな気がします。