我想使用CGSize添加两个+函数。我可以简单地用
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。我如何定义这样的+=工作?
发布于 2022-01-07 20:56:49
还必须定义+=运算符。作为赋值操作符,它的左边参数应该是inout,它应该返回Void.
extension CGSize {
static func += (lhs: inout Self, rhs: Self) {
lhs.width += rhs.width
lhs.height += rhs.height
}
}或者,利用您现有的+定义
extension CGSize {
static func += (lhs: inout Self, rhs: Self) {
lhs = lhs + rhs
}
}https://stackoverflow.com/questions/70627054
复制相似问题