理解 && 运算符何时短路

4
也许我错过了一些显而易见的东西。
在R中,TRUE && NA的结果是NA。这让我感到困惑,因为&&应该从左到右进行评估,并在满足一个条件时停止。

这在这个答案中提到了,但我仍然不明白为什么 - Daniel Kessler
请参考https://dev59.com/NGQn5IYBdhLWcg3wa2qV,特别是@joran的答案,关于`NA`的歧义。 - Beasterfield
6
AND需要两个条件同时为真,因此只会在第一个条件为“FALSE”时短路。 - James
http://spikedmath.com/445.html,http://mrburkemath.blogspot.ca/2011/05/coffee-logic.html - Ben Bolker
1个回答

21

这对我来说没有意义,因为“&&”应该从左到右进行求值,并在其中一个条件为 true 时立即停止。

这是错误的。你混淆了&&||

  • TRUE && FALSE的结果是FALSE
    • &&需要两个条件都为 TRUE
    • &&会在遇到 FALSE 时立即停止
  • TRUE || FALSE的结果是TRUE
    • ||只需要一个条件为 TRUE
    • ||会在遇到 TRUE 时立即停止

另外,

TRUE || NA 

给予

TRUE

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接