美文网首页
自定义操作符

自定义操作符

作者: 秋分落叶 | 来源:发表于2019-09-25 09:29 被阅读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

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

相关文章

  • RxJava学习笔记之Single

    特点: 使用说明: 操作符: 操作符返回值说明composeSingle创建一个自定义的操作符concat and...

  • Currying Operator

    柯里化 操作符 可以直接重载+ - 乘操作符,在swift中有了这些操作符的定义,如果想自定义操作符,比如点乘+*...

  • Swift学习:操作符

    1.标准操作符 逻辑中还有||位操作符中还有| 2.重载操作符(操作符函数) 2.1.==可以针对自定义类型重载标...

  • Swift教程之基本操作符

    基本操作符 本章介绍Swift中的常见操作符,并介绍使用自定义操作符实现复杂运算。 术语 操作符包括一元、二元和三...

  • RxJava 反应式编程阅读笔记1 操作符 map

    操作符的含义其实就是函数,这也是 RxJava 强大之处,它有非常多的操作符支持各种场景,甚至可以自定义操作符。并...

  • RxSwift文档六(单元测试)

    单元测试 测试自定义操作符 RxSwift用RxTest为所有操作符测试,位于Rx.xcworkspace项目内的...

  • Swift中的操作符

    1、…和..<2、??3、自定义操作符 1、…和..< Range操作符0…3:全闭合的范围操作,从0开始到3为止...

  • dart系列之:dart语言中的特殊操作符

    简介 有运算就有操作符,dart中除了普通的算术运算的操作符之外,还有自定义的非常特殊的操作符,今天带大家一起来探...

  • C++ Unique方法

    如果vector中存储的元素是自定义的结构或者是类,那么就需要重载操作符。unique算法需要重载"=="操作符。

  • 【C++】C++学习笔记之六:操作符重载

    1. 操作符重载的意义 对于C++内置的数据类型,可以简单明了地使用操作符对数据进行处理,如: 而对于用户自定义的...

网友评论

      本文标题:自定义操作符

      本文链接:https://www.haomeiwen.com/subject/zosiuctx.html