使用先前条件将值返回为可选值

时间:2015-01-10 17:04:52

标签: swift optional syntactic-sugar

考虑以下代码示例,该示例检查两个rects是否相交并将其交集矩形作为可选值返回:

func intersectRect(rect: CGRect, other: CGRect) -> CGRect?
{
    let result = CGRectIntersection(rect, other)
    return CGRectIsNull(result) ? nil : result
}

我多次使用此帮助程序,通常使用switch,例如

switch (intersectRect(rectA, other: rectB), intersectRect(rectA, other: rectC))
{
    case (.Some(let rX), .None(let rY)): doA()
    case (.None(let rX), .Some(let rY)): doB()
    default: doC()
}

问题:这可能甚至更短,即直接检查交集矩形而不使用帮助器并返回结果,如果它不是空矩形?

0 个答案:

没有答案