有没有一种方法可以检查函数的每一行的条件而无需编写相同语句的序列?
例如,假设我们正在穿越一个正方形的迷宫,其中每个正方形可能随机收集一个硬币,而有些正方形可能没有收集硬币。
有没有一种有效的方法编写一个函数来检查每个正方形的硬币,如果有硬币则收集一个硬币,然后移动到指定的下一个正方形?我只想collectCoin()
在有硬币的情况下运行该方法。否则,我只想检查是否有硬币,如果没有硬币,则穿过广场。
这是我认为效率不高的方法的一个示例:
func collectTheCoins() {
if isOnCoin {
collectCoin()
}
moveForward()
if isOnCoin {
collectCoin()
}
moveRight()
if isOnCoin {
collectCoin()
}
moveLeft()
if isOnCoin {
collectCoin()
}
}
为了提高效率的目的,我的目的是只能运行collectCoin()
方法,如果实际上有一个硬币收集。
如果您的方法collectCoin()
始终取决于是否检查条件,isOnCoin == true
那么您将无法消除该条件,但可以guard isOnCoin else { return }
在collectCoin()
方法的开头放置一个,以使您的代码看起来更加整洁,并且无需重复。
例:
func collectCoin() {
guard isOnCoin else { return }
// Your collect coin logic
}
func collectTheCoins() {
collectCoin()
moveForward()
collectCoin()
moveRight()
collectCoin()
moveLeft()
collectCoin()
}
同样,如果您总是在移动后收集硬币,您甚至可以将其放置collectCoin()
在每个移动方法的末尾,并collectCoin()
在每次移动方法调用之后摆脱那些多余的调用。您将获得如下内容:
func moveForward() {
// Your move forward logic
collectCoin()
}
func moveRight() {
// Your move right logic
collectCoin()
}
func moveLeft() {
// Your move left logic
collectCoin()
}
func collectTheCoins() {
collectCoin()
moveForward()
moveRight()
moveLeft()
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句