问题描述
我已经从某个显然喜欢使用以下语法的人那里收到了一些代码:
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(所有这些都是有效的说法,它们会降低总体代码质量)。>