根据操作数量来分,可以分为单目运算符,双目运算符,三目运算符,这没什么好说的,大概原理和c语言基本一致
值得一提的是:
区间运算符:闭区间运算符,a...b表示的时定义一个包含从a到b范围内所有值的区间
半区间运算符:a..<b,定义一个包含从a到b(不包括b)范围内所有值的区间。
位与运算符&,位或运算符|,位异或运算符^,位移运算符<<(左移变大)>>(右移变小)
运算符的重载:
struct CenterPointer {
var x=0,y=0
}
func + (left:CenterPointer,right:CenterPointer) -> CenterPointer{return CenterPointer(x: left.x + right.x,y: left.y + right.y)}
let zPointer = CenterPointer(x: 2, y: 3)
let yPointer = CenterPointer(x: 5, y: 3)
let xPointer = zPointer + yPointer
这就是一个很有意思的重载,将坐标上的值可以相加。
还有==的重载,++的重载,基本上都是这种套路,值得注意的是,=和三目条件运算符是不可重载的。
swift语言中运算符也有一定的优先级,优先级高的需要优先计算,而运算符的优先级可以在c语言书中找到。