美文网首页
初级_重载运算符(Swift)

初级_重载运算符(Swift)

作者: 求长生 | 来源:发表于2016-11-15 18:06 被阅读16次

    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)

          本文链接:https://www.haomeiwen.com/subject/ugllpttx.html