VesselWheel

[SwiftUI] 사용자 정의 연산자(Custom Operators) 본문

Xcode Study

[SwiftUI] 사용자 정의 연산자(Custom Operators)

JasonYang 2023. 4. 26. 20:09

import UIKit

 

// 사용자 정의 연산자

// Custom Operators

 

 

prefix operator +++

 

// Int type 에 연산자 추가하기

extension Int{

    static prefix func +++(num: inout Int){

        num += 2

    }

}

var num1 = 10

+++num1

num1

 

// 사용자 정의 연산자를 정의할 때

// 우선순위 그룹을 지정해야 함

// 이 경우에는 우선순위 그룹을 지정하지 않아서 기본 그룹에 속하게 됨

// + 연산자는 'AdditionPrecedence' 에 속해 있음

 

// 사용자 정의 우선순위 그룹 설정하기

precedencegroup UserPrecedence{

    higherThan: AdditionPrecedence

}

// 1 *+* 2 + 3

 

// infix operator *+*: MultiplicationPrecedence

infix operator *+*: UserPrecedence

 

extension Int{

    static func *+*(left: Int, right: Int) -> Int{

        return (left * right) + (left * right)

    }

}

 

2 *+* 3

4 *+* 5

 

/*

 Adjacent operators are in unordered precedence groups 'DefaultPrecedence' and 'AdditionPrecedence'

 */

1 *+* 2 + 3