代码之家  ›  专栏  ›  技术社区  ›  Aakash Goel

我应该如何格式化这段代码?

  •  2
  • Aakash Goel  · 技术社区  · 15 年前

    这里有两种呼叫方式 callscript (伪代码):

    使用重复呼叫

    if flag == true
        flag = false
        callscript
        flag = true
    else
        callscript
    endif
    

    使用额外变量

    flag2 = flag
    flag = false
    callscript
    flag = flag2
    

    条件

    • 我得确认一下 flag false 当调用脚本时。
    • 此外, 旗帜 值必须还原为原始值。

    有没有比这两个更好的方法?如果不是,哪一个是更好的选择?

    6 回复  |  直到 13 年前
        1
  •  5
  •   Guffa    15 年前

    最好是在调用中同时发送标志,这样标志和方法之间的关系就清晰了:

    callscript(false)
    

    如果这不是一个选择,你必须在两者之间做出选择,那么任何一个都可以。没有明确的胜利者,可读性对两者都差不多,所以这只是一个品味问题。

    如果实际调用复杂到不想在代码中重复,或者数据类型比布尔值更复杂,则第二个选项会更好。

        2
  •  4
  •   Manoj Govindan    15 年前

    我将使用变量2,对变量名进行更改,使其更容易理解。

    saved_flag = flag
    flag = false
    callscript
    flag = saved_flag
    
        3
  •  1
  •   fschmitt    15 年前

    我更喜欢第二个,因为如果你以一种明智的方式命名flag2(比如

    backupValueOfFlag = flag
    flag = false
    callscript
    flag = backupValueOfFlag
    

    )更清楚的是你在做什么,为什么要这样做。

        4
  •  0
  •   Thilo    15 年前

    我认为这就是局部变量和子程序参数被发明的原因。

    你真的要和环球公司合作吗?

        5
  •  0
  •   Petar Minchev    15 年前

    我会选第二个。第一个对我来说太人工了 if 没有用于程序流,而是保留标志值。

        6
  •  0
  •   Andriy Sholokh    15 年前

    对我来说,更好的选择是第一个。因为它更易读,也更清楚那里发生了什么。

    推荐文章