如何使瓶盖更短?

时间:2018-06-21 07:57:07

标签: swift closures

如何使闭合更短?我想知道闭合的简单编程。

let closures = { (fillBefore: Bool, fillAfter: Bool) -> String in

    if fillBefore && fillAfter {
        return kCAFillModeBoth
    } else if !fillBefore && fillAfter {
        return kCAFillModeBackwards
    } else if fillBefore && !fillAfter {
        return kCAFillModeForwards
    } else {
        return kCAFillModeRemoved
    }

}

anim?.fillMode = closures((item?.fillBefore)!, (item?.fillAfter)!)

如何使封盖更短?

1 个答案:

答案 0 :(得分:0)

根据您的情况,我认为在某些时候您必须评估两个布尔值,因此我认为没有“较短”的代码可以处理它。

但是,您可能正在寻找一种“更整洁”的方法,所以我建议使用switch语句将它们评估为布尔值(元组)的

let closure = { (fillBefore: Bool, fillAfter: Bool) -> String in
    switch (fillBefore, fillAfter) {
    case (true, true):
        return kCAFillModeBoth
    case (false, true):
        return kCAFillModeBackwards
    case (true, false):
        return kCAFillModeForwards
    default: // on your case, it would be the same as (false, false)
        return kCAFillModeRemoved
    }
}

let myClosure = closure(false,false)
myClosure // removed