美文网首页Swift学习笔记
Swift - 运算符重载

Swift - 运算符重载

作者: aven_kang | 来源:发表于2022-03-24 00:48 被阅读0次
struct Point {
    
    var x = 0, y = 0
    
}

var p1 = Point(x: 10, y: 20)
var p2 = Point(x: 11, y: 22)
let p3 = p1 + p2

在上述代码中,p3是不能这么直接相加的,我们需要重载运算符

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

这样就不会报错了
同样也支持多个相加

let p3 = p1 + p2 + p3 
// 可以理解为p1+p2加完后,再加p3

方法建议写在类型里面

struct Point {
    
    var x = 0, y = 0
    static func + (p1:Point,p2:Point) -> Point {
           Point(x: p1.x+p2.x, y: p1.y+p2.y)
    }
    static func - (p1:Point,p2:Point) -> Point {
           Point(x: p1.x-p2.x, y: p1.y-p2.y)
    }
    static func * (p1:Point,p2:Point) -> Point {
           Point(x: p1.x*p2.x, y: p1.y*p2.y)
    }
    static func += (p1: inout Point,p2:Point){
           p1 = p1 + p2
    } // 这个比较特别 += 是不需要返回值

}

相关文章

  • swift重载或自定义操作符

    重载运算符 在Swift中,类和结构体是可以提供现有运算符的自定义实现,也就是重载现有运算符。三元运算符(a?b:...

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

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

  • swift 应用

    //swift 暴露 objc 调用 //swift 调用 objc //自定义表达式模式 (重载运算符 ~=,自...

  • Swift - 运算符重载

    一、定义 在Swift的官方文档中运算符重载叫做运算符函数(Operator Functions)。简单来讲主要实...

  • 运算符重载及其他约定

    7.1 重载算术运算符 重载二元算术运算符 重载复合赋值运算符 重载一元运算符 重载比较运算符 等号运算符:‘eq...

  • C++ 部分运算符重载

    可重载的运算符 不可重载的运算符和符号 重载运算符为类的成员函数 重载运算符为友元函数 重载赋值运算符 重载流插入...

  • 2019-07-11 运算符的重载

    运算符的重载 重载运算符 (“::”,“.*”,“.”,“?:”)不能被重载。 重载运算符时,不能改变其本质,如不...

  • Swift重载运算符

    [TOC] Swift重载运算符 运算符重载允许你改变现在的作用在特定在的结构体和类上的已经存在的操作符的工作方式...

  • swift中的运算符重载

    在Swift的官方文档中运算符重载叫做运算符函数(Operator Functions),顾名思义就是对已经有的运...

  • 运算符重载

    一.+号运算符重载 二.<<号运算符重载 三.指针运算符重载(智能指针)

网友评论

    本文标题:Swift - 运算符重载

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