Swift 4.0 自定义操作符

在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 ]

image

image

image

image

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,419评论 0 13
  • 操作符 操作符优先级 在像 1 + 2 * 3 这样的表达式中, 2 * 3 被首先计算, 因为中缀操作符 * ...
    焉知非鱼阅读 1,580评论 0 1
  • 8:10起床。9:00到校。11:00放学。 15:00上班。7:00到家。10:00睡觉。 课件3,4,5,6准...
    RQ巷子里的阳光阅读 224评论 0 0
  • 一、“创业之神”疑似恋童癖 此前参加安徽卫视《超级演说家》获得全国季军的许豪杰,是一个自称“创业之神”、“创业大v...
    jollina阅读 483评论 1 2
  • -1- “又走了一个” “这已经是这一周第二个了。” 哲瀚坐在车上,听到同事闲聊着今天的活。哲瀚第一次出任务,难免...
    熊大虾阅读 264评论 2 2

友情链接更多精彩内容