R &引用;如果(错误)";没有明确规定任何条件

R &引用;如果(错误)";没有明确规定任何条件,r,if-statement,boolean,R,If Statement,Boolean,我收到了一些来自某个显然喜欢使用以下语法的人的代码: if(FALSE) { opt <- list("cores" = 1, "degradation" = TRUE, "test" = TRUE) } if(FALSE){ opt这是一种可用的技术 优点: 你不需要每行都使用# 正如@Ben Bolker所指出的,代码语法高亮显示仍然处于活动状态,因此您可以随时使用if(T)而不是if(F) 缺点: 你看不

我收到了一些来自某个显然喜欢使用以下语法的人的代码:

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

opt这是一种可用的技术

  • 优点:

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

    • 你看不清被评论掉的东西
如果什么是
FALSE

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

if (condition) …
“条件”可以是任何计算结果为R可以解释为逻辑值的表达式。
FALSE
就是这样一个表达式。
if(FALSE)
基本上与编写
if(一个永远不会为真的条件)
相同


因此,这种构造是毫无意义的:如果总是跳过整个
块,那么您不妨将其删除。正如在另一个答案中所解释的,有些人使用这种构造来轻松禁用较大的代码块。我不推荐这种做法:调用从未计算过的代码,它是杂乱无章的,因此会导致错误(所有这些都是有效的术语,表明它会降低整体代码质量)。

这可能是一个技巧,可以注释掉整个代码部分,而不必使用#,当您有很多行时,这是非常实用的,这里不是这样。@Waldi,请作为答案发布。(以这种方式注释代码段的一个优点是,它仍然会作为常规代码突出显示语法;这也可能是一个缺点,因为它使作为注释块更难区分。)