如何在函数的每一行之后检查条件?

JMS

有没有一种方法可以检查函数的每一行的条件而无需编写相同语句的序列?

例如,假设我们正在穿越一个正方形的迷宫,其中每个正方形可能随机收集一个硬币,而有些正方形可能没有收集硬币。

有没有一种有效的方法编写一个函数来检查每个正方形的硬币,如果有硬币则收集一个硬币,然后移动到指定的下一个正方形?我只想collectCoin()在有硬币的情况下运行该方法。否则,我只想检查是否有硬币,如果没有硬币,则穿过广场。

这是我认为效率不高的方法的一个示例:

func collectTheCoins() {
    if isOnCoin {
        collectCoin()
    }
    
    moveForward()
    if isOnCoin {
        collectCoin()
    }
    
    moveRight()
    if isOnCoin {
        collectCoin()
    }
    
    moveLeft()
    if isOnCoin {
        collectCoin()
    }
    
} 

为了提高效率的目的,我的目的是只能运行collectCoin()方法,如果实际上有一个硬币收集。

丹尼尔·萨利纳斯(Daniel E. Salinas)

如果您的方法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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在文件的每一行之后插入字符?

来自分类Dev

如何在列表的每一行之后创建按钮?

来自分类Dev

如何在文件的每一行之后插入字符?

来自分类Dev

如何在Pandas df中遍历每一行的值以检查该值是否满足条件

来自分类Dev

如何在EMACS中给定文本的每一行之后添加两个空格?

来自分类Dev

NodeJS:如何在控制台中的每一行之后禁用自动输出?

来自分类Dev

使用递归CTE函数对照每一行检查每一行

来自分类Dev

检查CSV中每一行的条件

来自分类Dev

如何在PHP MySQL中检查DATE和DATETIME的每一行?

来自分类Dev

如何在bash的每一行的N个模式之后追加一个字符?

来自分类Dev

如何检查C中文件的每一行?

来自分类Dev

如何在数据框的每一行上应用函数?

来自分类Dev

如何在Python数据框中的每一行上使用split函数?

来自分类Dev

如何在熊猫DataFrame的每一行上运行函数

来自分类Dev

如何在PHP生成的内容的每一行中添加单独的onclick / EventListener函数?

来自分类Dev

如何计算每一行中给定条件的总数?

来自分类Dev

PostgreSQL - 如何选择组函数的每一行?

来自分类Dev

如何在一列中的每一行上重复一个谷歌脚本函数?

来自分类Dev

如何在R中移动矩阵的每一行

来自分类Dev

如何在getline()中的每一行中移动

来自分类Dev

如何在Richtextbox的每一行的开头添加字符

来自分类Dev

如何在PHP中显示每一行的编号

来自分类Dev

如何在每一行上申请?

来自分类Dev

如何在列表中的每一行之间画线?

来自分类Dev

如何在PHP中显示每一行的编号

来自分类Dev

在转到R中的下一行之前,如何使函数返回每一行的值?

来自分类Dev

如何在表格的最后一行之后添加行

来自分类Dev

评估每一行的随机函数

来自分类Dev

* ng的每一行的调用函数

Related 相关文章

  1. 1

    如何在文件的每一行之后插入字符?

  2. 2

    如何在列表的每一行之后创建按钮?

  3. 3

    如何在文件的每一行之后插入字符?

  4. 4

    如何在Pandas df中遍历每一行的值以检查该值是否满足条件

  5. 5

    如何在EMACS中给定文本的每一行之后添加两个空格?

  6. 6

    NodeJS:如何在控制台中的每一行之后禁用自动输出?

  7. 7

    使用递归CTE函数对照每一行检查每一行

  8. 8

    检查CSV中每一行的条件

  9. 9

    如何在PHP MySQL中检查DATE和DATETIME的每一行?

  10. 10

    如何在bash的每一行的N个模式之后追加一个字符?

  11. 11

    如何检查C中文件的每一行?

  12. 12

    如何在数据框的每一行上应用函数?

  13. 13

    如何在Python数据框中的每一行上使用split函数?

  14. 14

    如何在熊猫DataFrame的每一行上运行函数

  15. 15

    如何在PHP生成的内容的每一行中添加单独的onclick / EventListener函数?

  16. 16

    如何计算每一行中给定条件的总数?

  17. 17

    PostgreSQL - 如何选择组函数的每一行?

  18. 18

    如何在一列中的每一行上重复一个谷歌脚本函数?

  19. 19

    如何在R中移动矩阵的每一行

  20. 20

    如何在getline()中的每一行中移动

  21. 21

    如何在Richtextbox的每一行的开头添加字符

  22. 22

    如何在PHP中显示每一行的编号

  23. 23

    如何在每一行上申请?

  24. 24

    如何在列表中的每一行之间画线?

  25. 25

    如何在PHP中显示每一行的编号

  26. 26

    在转到R中的下一行之前,如何使函数返回每一行的值?

  27. 27

    如何在表格的最后一行之后添加行

  28. 28

    评估每一行的随机函数

  29. 29

    * ng的每一行的调用函数

热门标签

归档