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
}
网友评论