gpt4 book ai didi

language-agnostic - 风格问题 : if block in or around function?

转载 作者:行者123 更新时间:2023-12-01 07:22:06 25 4
gpt4 key购买 nike

假设我有一个函数,它应该只在定义了某个常量时才执行。以下哪个会更好

选项 1:将所有函数调用包装在一个 if 块中:

if(defined('FOO_BAR_ENABLED')) {
foobar();
}

我认为这样意图更清晰,但每次调用函数时都需要检查常量。

选项 2:检查函数本身中的常量:
function foobar() {
if(!defined('FOO_BAR_ENABLED')) {
return;
}
//do stuff
}

这种方式需要更少的代码行,并且常量肯定会被检查。但是,当它实际上没有做任何事情时,我发现对这个函数的调用令人困惑。想法?

最佳答案

我可以建议将该函数重命名为 FoobarIfEnabled(),然后在该函数中进行检查吗?

从一个伟大的语言不可知论者那里大肆窃取 answer to one of my own questions ,在编程时我们有以下顾虑:

  • 使它正确。
  • 讲清楚。
  • 让它简洁。
  • 快一点。 ... 以该顺序。

  • 如果您在函数之外进行检查,您可能最终会在一个地方遗漏它。如果你想改变行为,你必须找到它被调用的所有地方并修复它。这是违反原则 1 的维护噩梦。通过在名称中添加“IfEnabled”或类似内容,现在不仅正确而且清晰。你怎么能打败它?

    除非最终速度不令人满意并且您已将此视为瓶颈(不太可能),否则不必担心性能。

    我建议您点击上面的链接并阅读,因为这是一个非常有用的答案,让我思考了很多。

    关于language-agnostic - 风格问题 : if block in or around function?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3637921/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com