没有明确说明的“ IfFALSE”

问题描述

我已经从某个显然喜欢使用以下语法的人那里收到了一些代码

if(FALSE) {
    opt <- list("cores" = 1,"degradation" = TRUE,"test" = TRUE)
}

这是什么意思? FALSE是什么?最后评估的条件?我很困惑

解决方法

这是一种可用的技术to comment out multiple lines of code

  • 优点:

    • 您不需要在每行中使用#
    • @Ben Bolker指出,代码语法突出显示仍处于活动状态,因此您知道可以随时使用Prelude Control.Arrow Data.List> occurrences 3 7 [-1,3,-4,4,-8,7,3] (4,2) 而不是if (T)来打开它
  • 缺点:

    • 您看不到#注释中的内容
,

如果FALSE是什么?

FALSE本身。 FALSE是一个逻辑值。 if的语法是

if (condition) …

该“条件”可以是任何表达式,该表达式的求值结果可以被R解释为逻辑值。 FALSE是这样的表达。因此,if (FALSE)与编写if (a condition that’s never true)基本相同。

因此,此构造非常没有意义:整个if块将始终被跳过,您也可以将其删除。如另一个答案所述,有些人使用此构造轻松禁用较大的代码块。我不推荐这种做法:从未评估过的代码称为dead code,而且很混乱,因此会引起technical debt(所有这些都是有效的说法,它们会降低总体代码质量)。>