美文网首页
Swift运算符

Swift运算符

作者: Sweet丶 | 来源:发表于2022-11-13 17:36 被阅读0次
1. 溢出运算符(Overflow Operator)

运算符可见官方说明:https://developer.apple.com/documentation/swift/operator-declarations

在Swift中,对于运算结果超出最大值或者低于最小值时,编译时期会报错误,如下:

不使用溢出运算符会报错.png

对于这种运算结果可能超出范围的情况,我们如果还坚持想进行,那么Swift提供了溢出运算符, 运算时如果超出了范围会从最大的一端继续向最小端继续计算,比如UInt8.max &+ 1 的值是UInt8.min = 0.

func testOverflowOperator() {
    print(UInt8.max) // 255
    var a = UInt8.max
//    a += 1 // 编译时报错Arithmetic operation '127 + 1' (on type 'Int8') results in an overflow
//    a = UInt8.min
//    a -= 1// 编译时报错同上
    // 下面是溢出运算符 &+ &— &* 的例子。结果是如果超出了会又从头开始计数
    print("UInt8.max &+ 1 =", (a &+ 1)) // 0
    print("UInt8.max &* 1 =", (a &* 2)) // 254
    print("UInt8.max &<< 1 =", (a &<< 1)) // 254
    a &+= 1
    print("UInt8.max &+= 1 =", (a)) // 0
    
    a = UInt8.min
    print("UInt8.min &- 1 =", (a &- 1)) // 255
    print("UInt8.min &>> 1 =", (a &>> 1)) // 0
    a &-= 1
    print("UInt8.min &-= 1 =", (a)) // 255
}
2. 运算符重载(Overflow Operator)

运算符重载指的是:类、枚举、结构体可以为现有的运算符提供自定义实现。

比如下面截图中为结构体Point增加自定义实现。 运算符重载.png
3. 自定义运算符

可以参照HandyJson库中的infix operator <<< : AssignmentPrecedence去实现自己的特定操作符。

自定义操作的一些关键字.png

相关文章

  • swift 运算符

    Swift 基本运算符 标签(空格分隔): swift 运算符 zybuluo swift 运算符 特性 赋值运算...

  • Swift 基本语法(二)— 运算符

    swift 运算符1.赋值运算符“=” 没有返回值, 比较运算符“==” 返回bool值。 这是swift比OC...

  • Swift002-运算符和流程控制语句

    Swift002-运算符和流程控制语句 运算符 Swift支持大多数标准C运算符,并有所改进。 赋值运算符(=)不...

  • 赋值和算数运算符

    基本概念 一元运算符、二元运算符、三元运算符Swift 只有一个三元运算符 a ? b : c Swift 运算符...

  • iOS开发 - 「Swift 学习」Swift 区间运算

    Swift 区间运算符 Swift提供了两个区间运算符 运算符描述实例闭区间运算符闭区间运算符(a...b)定义一...

  • swift运算符

    溢出运算符 Swift的算数运算符出现溢出时会抛出运行时错误 Swift有溢出运算符(&+、&-、&*),用来支持...

  • Swift 高级运算符 ⑬

    1. 溢出运算符 Swift 的算数运算符出现溢出时,会抛出运行时错误 Swift 有溢出运算符(&+、&-、&*...

  • 17-Swift高级运算符

    1.溢出运算符 Swift的算数运算符出现溢出时会抛出运行时错误 Swift有溢出运算符(&+、&-、&*),用来...

  • 高级运算符

    溢出运算符 Swift的算数运算符出现溢出时会抛出运行时错误Swift有溢出运算符(&+、&-、&*),用来支持溢...

  • 每天学一点Swift---- 运算符函数

    一.运算符重载 1. Swift的运算符提供了良好的可扩展性,Swift不仅允许开发者重新定义已有的运算符(运算符...

网友评论

      本文标题:Swift运算符

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