【iOS/Swift】自定义操作符 prefix postfix infix

本文介绍了如何在Swift中定义和使用前缀、后缀及中缀运算符,以及如何通过`precedencegroup`定义运算符的优先级和结合性。示例代码展示了如何实现2的n次方、平方运算以及自定义的乘法增强运算符,帮助理解运算符的自定义规则。
摘要由CSDN通过智能技术生成

说明

  • 操作符预定义 prefix infix postfix
  • prefix: 运算符在运算值的前方; postfix:运算符在运算值的后方;infix:运算符在运算值之间
  • precedencegroup:定义运算符的其它属性
prefix operator ^
postfix operator ^-
infix operator ^^

代码示例


// 前置:返回2的n次方
prefix operator ^

prefix func ^ (vector: Double) -> Double {
    return pow(2, vector)
}

print(^5)  // 32.0

// 后置:返回2次方
postfix operator ^-

postfix func ^- (vector: Int) -> Int {
    return vector * vector
}

print(5^-) // 25

/// 定义优先级组
precedencegroup MinePrecedence {
//    lowerThan: AdditionPrecedence       // 优先级, 比加法运算低
    higherThan: AdditionPrecedence   // 优先级,比加法运算高
    associativity: left                 // 结合方向:left, right or none
    assignment: false                   // true=赋值运算符,false=非赋值运算符
}

infix operator ^^: MinePrecedence        // 继承 MyPrecedence 优先级组
// infix operator ^^: AdditionPrecedence // 也可以直接继承加法优先级组(AdditionPrecedence)或其他优先级组
func ^^(left: Int, right: Int) -> Int {

    return left + right * 2
}

print(2 ^^ 10 + 2 ^^ 3)  // 22 + 8 = 30
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值