交换运算符
让我们添加一个自定义运算符来乘以 CGSize
func *(lhs: CGFloat, rhs: CGSize) -> CGSize{
    let height = lhs*rhs.height
    let width = lhs*rhs.width
    return CGSize(width: width, height: height)
}
现在这个工作
let sizeA = CGSize(height:100, width:200)    
let sizeB = 1.1 * sizeA         //=> (height: 110, width: 220)
但是如果我们尝试反向操作,我们会收到错误
let sizeC = sizeB * 20          // ERROR
但它很简单,可以添加:
func *(lhs: CGSize, rhs: CGFloat) -> CGSize{
    return rhs*lhs
}
现在运算符是可交换的。
let sizeA = CGSize(height:100, width:200)    
let sizeB = sizeA * 1.1              //=> (height: 110, width: 220)