初级_重载运算符(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
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容