"If (FALSE)" 没有明确说明条件

"If (FALSE)" with no condition explicitly stated

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

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

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

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

  • 优点:

    • 你不需要在每一行都使用#
    • 正如@Ben Bolker 所指出的,代码语法突出显示仍然处于活动状态,因此您知道您可以随时使用 if (T) 而不是 if (F)
    • 来打开它
  • 缺点:

    • 你看得不像 # 注释掉的东西那么清楚

If what is FALSE?

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

if (condition) …

那个“条件”可以是任何表达式,其计算结果为 R 可以解释为逻辑值的东西。 FALSE就是这样一种表达方式。所以 if (FALSE) 和写 if (a condition that’s never true).

基本一样

所以这个结构是毫无意义的:整个if块总是会被跳过,你不妨删除它。正如另一个答案中所解释的,有些人使用这种结构来轻松禁用更大的代码块。我不推荐这种做法:从未评估的代码称为 dead code, and it’s clutter and thus incurs technical debt(所有这些都是有效的术语,表示它会降低整体代码质量)。