Con*_*sed 2 sprite-kit skscene swift
在一个应该加载一个场景的按钮中,我试图学习使用aa guard语句,但是它在四个"逃脱"中的每一个中都做了很多的困惑.并且不知道在处理没有场景的情况时我应该做些什么.
这是正确的用在这里: continue,return,break或throw?
而且......为什么?
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch: AnyObject in touches {
let location = touch.location(in: self)
if self.rr.contains(location) {
guard let nextScene = goesTo
else {print(" No such Scene ")
continue } // continue, return, break, throw !!!!????
loadScene(withIdentifier: nextScene)
}
}
}
Run Code Online (Sandbox Code Playgroud)
我不认为风景适合警卫声明,因为你有很多情况下循环,你想避免一些情况!首先,我们需要知道何时应该使用保护声明.是的,它可以帮助您处理错误,但这并不意味着您应该随时随地使用它!
为什么要警惕以及何时使用它们而不是使用它们:
更新
我希望这能澄清你的问题
当你使用休息时
let array: [Int?] = [3, 7, nil, 12, 40]
for arrayValue in array {
guard let value = arrayValue else {
print("No Value")
break
}
print(value)
}
Run Code Online (Sandbox Code Playgroud)
产量
3
7
没有价值
当你使用继续
let array: [Int?] = [3, 7, nil, 12, 40]
for arrayValue in array {
guard let value = arrayValue else {
print("No Value")
continue
}
print(value)
Run Code Online (Sandbox Code Playgroud)
产量
3
7
没有价值
12
40
返回将关闭该函数,并且在这种情况下将与中断相同.现在请根据您的需要做出决定!如果您认为在没有场景条件时可以打破它,那么中断或者如果您想跳过它,那么只需跳过那个确切的场景继续.我希望你明白我的观点
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |