- 命名你的运算符
- 选择一种类型
- 设置它的优先级和结合性
现在你必须选择一个字符作为你的运算符。自定义运算符可以以/、=、-、+、!、*、%、<、>、&、|、^、~或者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查看。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。