Swift中自定义运算符

本文介绍如何在Swift中创建自定义运算符,并通过一个具体的例子展示了定义运算符的过程,包括命名、选择类型、设置优先级和结合性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里有三个步骤去定义一个自定义操作符:

  • 命名你的运算符
  • 选择一种类型
  • 设置它的优先级和结合性

现在你必须选择一个字符作为你的运算符。自定义运算符可以以/、=、-、+、!、*、%、<、>、&、|、^、~或者Unicode字符开始。这个给了你一个很大的范围去选择你的运算符。但是别太高兴,选择的时候你还必须考虑重复输入的时候更少的键盘键入次数。

由于运算符定义是全局的,所以你要小心的选择你的自定义运算符的优先级和结合性。

//: Playground - noun: a place where people can play

import UIKit

infix operator +++ {
    associativity left precedence 140
}

func +++(left:[Int],right:[Int]) -> [Int]{
    var sum = [Int](count: left.count, repeatedValue: 0)
    assert(left.count == right.count,"vector of same length only")
    for (key,_) in left.enumerate() {
        sum[key] = left[key] + right[key]
    }
    return sum
}

print("\([2,3,4] +++ [1,2,3])")

分析:

  • 定义一个中缀/二元操作符,它有两个操作数并且位于操作符两侧
  • 命名操作符为+++
  • 设置结合性为left,表明该操作符在相同优先级时候,将使用操作符的顺序从左到右结合
  • 设置优先级为140,这个是和Int加法有相同的优先级,这些优先级可以在Expressions查看。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值