swift3.0 사용자 정의 조작부호

1030 단어
만약 우리가 새로 조작부호를 추가하려고 한다면, 먼저 그것에 대해 설명을 하고 컴파일러에게 이 기호가 사실 조작부호라는 것을 알려야 한다.다음 코드 추가
precedencegroup DorProductPrecedence{
   
   associativity: none
   higherThan: MultiplicationPrecedence
}

infix operator +*: DorProductPrecedence

precedencegroup
작업자 우선 순위 정의 (우선 순위의 전체 목록)
associativity
여러 개의 같은 종류의 조작부호 순서에 나타난 계산 순서
higherThan
연산자의 우선순위, higherThan은 다른 그룹보다 높은 그룹을 가리키거나 lowerThan으로 다른 그룹보다 낮은 우선순위를 지정할 수 있습니다
infix
정의된 것은 중위 조작부호이며, 다른 수식부호는prefix와postfix를 포함한다
전체 예제 코드:
struct Vector2D {
    
    var x:Double = 0.0
    var y:Double = 0.0
}


precedencegroup DorProductPrecedence{
    
    associativity: none
    higherThan: MultiplicationPrecedence
}

infix operator +*: DorProductPrecedence  

func +* (left: Vector2D, right: Vector2D) -> Vector2D {
    return Vector2D(x: left.x + right.x, y: left.y + right.y)
}




let v1 = Vector2D(x: 1.2, y: 2.1)
let v2 = Vector2D(x: 2.3, y: 4.4)
let v3 = v1 +* v2
        
print(v3)

좋은 웹페이지 즐겨찾기