我有以下switch
声明,它似乎非常详尽。
switch (point.x > frame.origin.x, point.y > frame.origin.y) {
case (true, true): // Bottom right
moveSubviewX = subview.frame.origin.x - moveBy
moveSubviewY = subview.frame.origin.y - moveBy
case (false, true): // Bottom left
moveSubviewX = subview.frame.origin.x + moveBy
moveSubviewY = subview.frame.origin.y - moveBy
case (true, false): // Top right
moveSubviewX = subview.frame.origin.x - moveBy
moveSubviewY = subview.frame.origin.y + moveBy
case (false, false): // Top left
moveSubviewX = subview.frame.origin.x + moveBy
moveSubviewY = subview.frame.origin.y + moveBy
}
如果tuple
包含两个Bool
个组件,则只有4种可能的变体。为什么我仍然建议包含“默认条款”?
答案 0 :(得分:5)
只有在切换枚举时,XCode才会检查switch语句是否详尽无遗。对于其他所有情况,它会检查是否存在默认语句,如果没有,则会发出警告。
您可以使用枚举,也可以根据需要压制警告,或者只添加缺少的默认语句。