if案例的补充

时间:2016-06-20 15:39:28

标签: ios swift if-case

你怎么写这个:

updateTotal(0,0);
function updateTotal(skip,total){
    $.getJSON("/_vti_bin/ListData.svc/MPIC?$select=Id&$orderby=Id&$skiptoken="+skip+"&$top=1000&$inlinecount=allpages", function (data) {
        var count = data.d.results.length;
        if(count > 0){
            var lastItemId;
            // TODO: get last item id from results here
            updateTotal(lastItemId,total+count);
        }
        else{
            $("#ALLCount1").text(total);
        }
    });
}

我知道我可以使用if case .SomeEnum(3) = enumType where myInt == 3 { //I don't need this case } else { //This is the case I need }

guard

但我不认为它很干净,因为它不是一个功能无法完成的情况。另外,guard case .SomeEnum(3) = enumType where myInt == 3 else { //This is the case I need } 希望我从函数返回。

还有其他选择吗?

1 个答案:

答案 0 :(得分:3)

你不能否定一种模式(据我所知)和你的第一个解决方案 使用if/else看起来很好,代码的意图很明显 可见。

switch语句可以替代:

switch enumType {
case .SomeEnum(3) where myInt == 3:
    break  // I don't need this case
default:
    // This is the case I need
    // ...
}

关于你的评论

  

此外,警卫希望我从该功能返回。

这不完全正确。您应该离开当前范围。 所以这将按预期编译和工作:

repeat {
    guard case .SomeEnum(3) = enumType where myInt == 3 else {
        // This is the case I need
        // ...
        break
    }
} while false

但我不认为这是一个更好的解决方案。