es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo definir funciones de extensión += en CGSize

Quiero añadir dos funciones CGSize usando +. Puedo hacer eso fácilmente con

extension CGSize{
    static func +(lhs: Self, rhs: Self) -> CGSize{
        CGSize(width: lhs.width + rhs.width, height: lhs.height + rhs.height)
    }
}

el problema es que me permite hacer let result = size1 + size2 pero no puedo hacer size1 += size2. ¿Cómo puedo definirlo para que funcione +=?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para hacer que += funcione, puedes modificar la extensión de la siguiente manera:

    extension CGSize{
        static func +(lhs: Self, rhs: Self) -> CGSize{
            CGSize(width: lhs.width + rhs.width, height: lhs.height + rhs.height)
        }
    
        static func +=(lhs: inout Self, rhs: Self) {
            lhs = lhs + rhs
        }
    }
    

    Al agregar otra función a la extensión, ahora puedes usar += para sumar dos objetos CGSize.

Comments are closed.