首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在+=上定义CGSize扩展函数

如何在+=上定义CGSize扩展函数
EN

Stack Overflow用户
提问于 2022-01-07 20:53:32
回答 1查看 80关注 0票数 0

我想使用CGSize添加两个+函数。我可以简单地用

代码语言:javascript
运行
复制
extension CGSize{
    static func +(lhs: Self, rhs: Self) -> CGSize{
        CGSize(width: lhs.width + rhs.width, height: lhs.height + rhs.height)
    }
}

问题是它允许我做let result = size1 + size2 ,但是不能做size1 += size2。我如何定义这样的+=工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-07 20:56:49

还必须定义+=运算符。作为赋值操作符,它的左边参数应该是inout,它应该返回Void.

代码语言:javascript
运行
复制
extension CGSize {
    static func += (lhs: inout Self, rhs: Self) {
        lhs.width += rhs.width
        lhs.height += rhs.height
    }
}

或者,利用您现有的+定义

代码语言:javascript
运行
复制
extension CGSize {
    static func += (lhs: inout Self, rhs: Self) {
        lhs = lhs + rhs
    }
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70627054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档