初级_重载运算符(Swift)

overloading 重载 / prefix 前缀 / infix 插入中间位 / postfix 后缀

使用重载运算符对十进制计算方法的使用。

新的操作符需要用operator关键字声明在全局变量中,可以用prefix,infix,prostfix声明。

**e.g. **
infix operator + {}
infix 表示定义一个中位操作符。
associativity 定义了结合率 ,在多个同类的操作符出现时计算的顺序,加减法都是left,不会有多个同类操作符出现时可设置为none。
precedence 运算的优先级,越高的优先级越先进行运算。

**e.g. **

infix operator + {
 associativity none
 precedence 140
} 

使用重载运算符重载十进制方法

infixoperator +{}
infixoperator -{}
infixoperator *{}
infixoperator /{}

public func + (left: NSDecimalNumber, right: NSDecimalNumber) -> NSDecimalNumber{
    let result = left.decimalNumberByAdding(right)
    return result
}
public func - (left: NSDecimalNumber, right: NSDecimalNumber) -> NSDecimalNumber{
    let result = left.decimalNumberBySubtracting(right)
    return result
}
public func * (left: NSDecimalNumber, right: NSDecimalNumber) -> NSDecimalNumber{
    let result = left.decimalNumberByMultiplyingBy(right)
    return result
}
public func / (left: NSDecimalNumber, right: NSDecimalNumber) -> NSDecimalNumber{
    let result = left.decimalNumberByDividingBy(right)
    return result
}

你可能感兴趣的:(初级_重载运算符(Swift))