你怎么写这个:
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
}
希望我从函数返回。
还有其他选择吗?
答案 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
但我不认为这是一个更好的解决方案。