美文网首页iOS学习笔记
Swift基础进阶 - 高级运算符的使用

Swift基础进阶 - 高级运算符的使用

作者: DingGa | 来源:发表于2021-02-18 22:52 被阅读0次

溢出运算符

如图,Uint8的最大与最小值是 0 到 255

screenshot.png

当我们对该参数进行在最大值和最小值的时候如果超出了这个值,称之为溢出


screenshot.png

但是如果使用 &+

        var v:UInt8 = UInt8.max
        var v2 = v &+ 1
        print("\(v2)")

我们来看下输出结果

      0

Uint8 为0到255 超过的话溢出,会自动循环,则向上加1 得到 0

重载运算符

struct point{
    var x = 0, y = 0
}
//重载运算符
        var p1 = point(x:10,y:20)
        var p2 = point(x:15,y:15)

        var p3 = p1 + p2;

如果我们想要 P3 为 p1与p2 的 x,y互相加得到的值, 在原本的 + 运算符号是不支持的,这里就需要运算符重载了.

func + (p1:point, p2: point) ->point {
    point(x:p1.x + p2.x, y: p1.y + p2.y)
}

这样,我们其实就是将 "+" 运算符进行的重载. 接下来我们看看结果.

point(x: 25, y: 35)

验证成功

Equatable (验证相等)

要想知道两个实例是否等价,一般做法是遵守Equatable 协议,重载 == 运算符,与此同时,等价重载了 != 运算符.

class Person: Equatable {
    static func == (lhs: Person, rhs: Person) -> Bool {
        lhs.age == rhs.age
    }

    var age: Int
    var name:String
    init(age: Int) {
        self.age = age
        self.name = ""
    }
}

   //重载运算符
        var p1 = Person.init(age: 10)
        p1.name = "2"
        var p2 = Person.init(age: 10)
        p2.name = "3"

        print("是否相等 \(p1 == p2)")

我们来看下验证结果

是否相等 true

得出,遵守Equatable ,并进行运算符重载的两个实例对象,判断是否相同唯一标准是重载后的 == 运算符是否是相同的.

注意: Swift会对以下类型默认实现
  1. 枚举没有关联类型的对象,自动实现 Equatable
  2. int
    3.double 等

Comparable (比较大小)

用于比较两个实例的大小操作


screenshot.png

原理一样,这里不做测试了

相关文章

  • Swift基础进阶 - 高级运算符的使用

    溢出运算符 如图,Uint8的最大与最小值是 0 到 255 当我们对该参数进行在最大值和最小值的时候如果超出了这...

  • 5.1 高级运算符与枚举

    除了算术运算符、逻辑运算符等基础的运算符外,Swift语言还提供了许多关于运算符的高级使用技巧。开发者甚至可以重新...

  • 第五篇:CoreData

    CoreData 初识CoreData 基础使用CoreData 高级使用CoreData 使用进阶CoreDat...

  • 第二十四节 Swift 高级运算符

    除了加减乘除运算符,常用的位运算符在 Swift里属于高级运算符。 其它的高级运算符还有移位运算符和溢出加法运算符...

  • swift2.2 - 高级运算符

    高级运算符 文档地址 作为 基本运算符 的补充,Swift 提供了几个高级运算符执行对数传值进行更加复杂的操作。这...

  • Swift编程二十八(高级运算符)

    案例代码下载 高级运算符 除了基本运算符中描述的运算符之外,Swift还提供了几个执行更复杂值操作的高级运算符。这...

  • 26_高级运算符

    除了基本运算符,Swift 中还有许多可以对数值进行复杂运算的高级运算符。这些高级运算符包含了在位运算符和移位运算...

  • Swift进阶(十四)高级运算符

    溢出运算符(Overflow Operator) Swift的算术运算符出现溢出时会抛出运行时错误 Swift有溢...

  • 26 高级运算符

    高级运算符 除了Basic Operators中描述的基本运算符之外,Swift还提供了几个执行更复杂值操作的高级...

  • 最新web前端相关课程学习链接

    js基础篇 js进阶篇 js高级篇 vue基础篇 vue高级篇 react基础 react高级 Nodejs基础 ...

网友评论

    本文标题:Swift基础进阶 - 高级运算符的使用

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