我有以下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
}
Run Code Online (Sandbox Code Playgroud)
与tuple具有两个Bool部件只有4个可能的变型.为什么我仍然建议包含"默认条款"?
只有在切换枚举时,XCode才会检查switch语句是否详尽无遗.对于其他所有情况,它会检查是否存在默认语句,如果没有,则会发出警告.
您可以使用枚举,也可以根据需要压制警告,或者只添加缺少的默认语句.
| 归档时间: |
|
| 查看次数: |
826 次 |
| 最近记录: |