|
1
105
这个
它还很大程度上取决于您的编程语言和环境。在支持模式匹配的语言中,您将有很好的替换工具
然而,条件从句有时会导致代码更难管理。这不仅包括
在某些情况下,使用
|
|
|
2
89
还有另一种意义,即
例如。
但基本上,if是一个完全可以接受的工具。当然,它可以被滥用和滥用,但它与后藤的地位相差甚远。 |
|
|
3
36
完整代码中的良好引用:
瞧,简单点。如果应用程序的可读性将通过在特定区域使用谓词得到增强,请使用它。否则,请使用“如果”并继续。 |
|
|
4
18
如果你有一个简单的
如果可以,请使用
这家伙对我来说似乎有点迂腐。全部替换
|
|
|
5
15
有一个 Anti-If 今年早些时候开始的运动。主要前提是许多嵌套的if语句通常可以用多态性替换。
|
|
6
10
|
|
|
7
10
就像圣经中关于金钱的诗句,如果陈述不是邪恶的——爱如果陈述是邪恶的。一个没有if语句的程序是一个荒谬的想法,在必要时使用它们是必要的。但是一个连续有100个if-else-if块的程序(不幸的是,我已经看到)绝对是邪恶的。 |
|
|
8
8
我必须说,我最近开始将if语句视为一种代码气味:特别是当您发现自己多次重复相同的条件时。但是关于代码气味,您需要了解一些事情:它们并不一定意味着代码是坏的。他们只是说有一个好的 代码不好。 例如,Martin Fowler将注释列为代码气味,但我不会认真对待那些说“注释是邪恶的,不要使用它们”的人。 一般来说,如果可能的话,我更喜欢使用多态性而不是if语句。这只会减少犯错误的空间。我倾向于发现,很多时候,使用条件也会导致大量的tramp参数(因为您必须将形成条件的数据传递给适当的方法)。 |
|
|
9
7
他错了 . 这样的事情你可以做得太过分,太聪明了,不利于你自己。 用谓词而不是ifs创建的代码将难以维护和测试。 |
|
|
10
4
谓词来自逻辑/声明性编程语言,如PROLOG。对于某些类型的问题,比如约束求解,它们可以说比很多冗长的一步一步的解决方法优越——如果这样做了,那么就做这些废话。用命令式语言解决的冗长而复杂的问题可以在PROLOG中用几行代码完成。 还有可伸缩编程的问题(由于向多核、web等的发展)。If语句和命令式编程通常倾向于循序渐进,不可伸缩。不过,逻辑声明和lambda演算描述了如何解决问题,以及问题可以分解成哪些部分。因此,执行该代码的解释器/处理器可以有效地将代码分解为多个片段,并将其分发到多个CPU/内核/线程/服务器。 绝对不是到处都有用;我不想尝试用谓词而不是if语句编写设备驱动程序。但是,是的,我认为要点可能是合理的,至少值得熟悉,如果不是一直使用的话。 |
|
|
11
4
也许在量子计算中,不使用IF语句是一种明智的策略,而是让计算的每一个分支继续进行,只让函数在结束时“崩溃”以得到有用的结果。 |
|
|
12
3
谓词的唯一问题(在替换方面)
你当然可以使用三元运算符(
|
|
|
13
3
这可能归结为希望降低代码圈复杂度,并减少函数中分支点的数量。如果一个函数很容易分解成许多较小的函数,并且每个函数都可以测试,那么您可以降低复杂性并使代码更易于测试。 |
|
|
14
2
海事组织: 我怀疑他是想挑起一场辩论,让人们思考“如果”的滥用。没有人会认真地建议完全避免这种编程语法的基本构造,是吗? |
|
|
15
2
有时有必要采取极端的立场来表明你的观点。我相信这个人用的是
偏好多态性而不是
... 使用:
那么在现实世界中,什么样的
这就把我们带到了 战略模式 . 而不是:
当然
|
|
|
16
1
很好 红宝石 我们有 ;) 但很可能是真的 如果 下一个是什么 后藤 ,即使大多数人认为它是邪恶的,但在某些情况下,它会简化/加速事情(在某些情况下,如低级别高度优化的代码,它是必须的)。 |
|
|
17
1
我认为如果陈述是邪恶的,但如果表达不是。在这种情况下,我所说的if表达式可以是类似于C#三元运算符(condition?trueExpression:false表达式)的东西。这不是坏事,因为它是一个纯函数(在数学意义上)。它计算为一个新值,但对其他任何内容都没有影响。因此,它在替代模型中工作。
|
|
|
18
-2
如果不是邪恶!考虑
无聊,嗯?现在添加了一个if。。。
... 您的代码创建效率(以LOC为单位)提高了一倍。 代码可读性也有了很大的提高,因为现在你可以在眨眼之间看到当两个参数都为零时的结果。你不能在上面的代码中这样做,是吗? 此外,您还支持testteam,因为他们现在可以将代码覆盖率测试工具的使用推向极限。 由于if的存在,首先只需要对代码进行轻微的更改。
如果不是从一开始就发明了if,那么还需要多少代码更改。 感谢将是你的所有方面。 结论:如果是,就永远不够了。 好了。到 |
|
|
Questor · 宏生成链式else if 1 年前 |
|
|
M 93 · 如果公式(总和小于30,则四舍五入tp 30) 1 年前 |
|
|
A.Ellett · 测试-t STDIN与-t<STDIN> 1 年前 |
|
|
Filippo Marolla · 根据R中的多个条件计算分数 1 年前 |
|
|
Ryrich · 3或5的倍数可以用else if语句来完成吗? 1 年前 |
|
|
x GutterRat x · 如何使此方法始终返回非负值? 1 年前 |
|
|
Ruslan199 · python中的条件列出了理解 1 年前 |