Swift 4.0 高级-自定义操作符
2024-09-17 05:19:55
在Swift语言中,常见的操作符有+
、-
、*
、/
、>
、<
、==
、&&
、||
等等,如果不喜欢,你也可以定义自己喜欢的操作符。
操作符类型
- 中置运算符(infix operator) e.g.
+
、-
、/
、*
- 前置运算符(prefix operator) e.g.
--
、++
- 后置运算符(postfix operator) e.g.
--
、++
注意:
在Swift初期(1.0,2.0)--
和++
这些前(后)置运算符还是可以使用的,但是会有警告;但在Swift4.0已经不能使用了(编译无法通过),不过我们自己定义的前(后)置运算符是可以使用的。
自定义操作符
1.中置运算符
示例
/// 定义优先级组
precedencegroup MyPrecedence {
// higherThan: AdditionPrecedence // 优先级,比加法运算高
lowerThan: AdditionPrecedence // 优先级, 比加法运算低
associativity: none // 结合方向:left, right or none
assignment: false // true=赋值运算符,false=非赋值运算符
}
infix operator +++: MyPrecedence // 继承 MyPrecedence 优先级组
// infix operator +++: AdditionPrecedence // 也可以直接继承加法优先级组(AdditionPrecedence)或其他优先级组
func +++(left: Int, right: Int) -> Int {
return left+right*2
}
使用
let result = 2+++3
print(result) // 8
Precedence Group
Apple官方链接[Table 3 Infix operators]
2.前置运算符
定义前置运算符是不继承优先级组
示例
prefix operator ==+
prefix func ==+(left: Int) -> Int {
return left*2
}
使用
print(==+2) // 4
3.后置运算符
定义后置运算符是不继承优先级组
示例
postfix operator +==
postfix func +==(right: Int) -> Int {
return right*3
}
使用
print(2+==) // 6
最新文章
- C#设计模式系列:代理模式(Proxy)
- FZU 2112 并查集、欧拉通路
- 20个Linux服务器安全强化建议(一)
- Jenkins进阶系列之——09配置Linux系统ssh免密码登陆
- lucene 3.0.2 搜索
- yii2 利用小部件生成后台左边菜单栏
- 11g RAC R2 之Linux DNS 配置
- 基于AgileEAS.NET企业应用平台实现基于SOA架构的应用整合方案-开篇
- bzoj2326: [HNOI2011]数学作业
- [译]使用Babel和Browserify创建你的ES6项目
- Nginx+Keepalived 做负载均衡器
- 第一个程序点亮一个LED灯
- POJ 3070 矩阵快速幂解决fib问题
- 无线同步模块SYN1000在电力监测相位测量领域的应用方案
- myeclipse项目部署到idea常见问题
- js 中 new fn与new fn()的区别
- spring-oauth-server实践:OAuth2.0 通过header 传递 access_token 验证
- 图像检索(4):IF-IDF,RootSift,VLAD
- python之数据类型补充、集合、深浅copy
- Squid实现正向代理及访问控制--技术流ken