问题标签 [short-circuiting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2277 浏览

python - python布尔表达式不是“短路”?

例如:

我认为上面的代码应该输出:

代替 :

为什么 ?我怎样才能产生“短路”效果?

0 投票
5 回答
11136 浏览

haskell - Haskell 素数测试

我是 Haskell 的新手,我正在尝试一下:

我有几个问题。

  1. 为什么当我尝试加载 .hs 时,WinHugs 会说:(Floating Integer, RealFrac Integer)定义所需的实例isPrime
  2. 当解释器在正确的集合中找到一个元素时,它会立即停止还是计算所有集合?我想你知道我的意思。

对不起我的英语。

0 投票
2 回答
507 浏览

c++ - 实例化模板时短路?

考虑这个代码片段,

other<true>当实例化似乎完全没有必要时,编译器是否会在上述情况下实例化?或者仅仅因为我已经编写了语法,编译器必须实例化它,而不管它对?other<b>::value的值的计算完全没有贡献。test<true>::value

我想听听,a)标准要求什么,以及 b)各种编译器实际实现了什么?标准中的相关部分将不胜感激。

0 投票
4 回答
627 浏览

c++ - 整数比较运算符在 C++ 中是否短路?

与标题状态一样,整数(或任何数字数据类型,如浮点数等)比较运算符(==、!=、>、>=、<、<=)在 C++ 中是否短路?

0 投票
9 回答
21343 浏览

c# - 在 .NET 中依赖 && 短路安全吗?

假设 myObj 为空。写这个安全吗?

我知道有些语言不会执行第二个表达式,因为 && 在执行第二部分之前计算为 false。

0 投票
4 回答
207 浏览

javascript - JavaScript; 用 OR 子句解析 IF 语句

我的问题很简单,如果我声明一个带有一系列 OR 子句的 IF 语句,JavaScript 会读取所有 OR 还是停在第一个满足的 OR 处?

提前致谢。

0 投票
2 回答
565 浏览

objective-c - Objective-C 是否对 nil 对象的消息使用短路评估?

按照通常的短路评估问题,短路评估是否适用于针对 nil 对象构建和发送的参数?例子:

是要调用那个慢速函数还是会在不处理参数的情况下优化整个 addObject 调用?

0 投票
6 回答
9267 浏览

javascript - 使用 && 的短路作为 if 语句?

jQuery.form.js我在源代码中看到了这一行:

我的第一个想法是wtf??

我的下一个想法是,我无法决定这是丑陋还是优雅。

无论如何,我都不是 Javascript 专家,所以我的问题是 2 倍的。首先,我想确认我理解正确。上面的行是否等效于:

其次,这是 Javascript 中常见/公认的做法吗?一方面它很简洁,但另一方面,如果你以前没有看过它,它可能会有点神秘。

0 投票
4 回答
743 浏览

ruby - Ruby 1.9.2 Object.respond_to?:hello && Object.hello 给出错误,为什么?

今天在单步执行代码时,我注意到了一些意想不到的事情。这个说法:

如果 Object.respond_to? :hello && Object.hello #stuff

给出未定义的方法错误。但为什么?显然 hello 不是 Object 的有效方法,但是考虑到短路评估,Object.hello 不应该在 Object.respond_to 时被忽略吗?: 你好是假的?

我在玩 Authlogic 时注意到了这一点,试图弄清楚为什么 UserSession 类必须定义持久化?在 Rails 3 中。

谢谢

0 投票
4 回答
4861 浏览

python - 如何在 Python lambdas 中表达条件执行?

我发现了什么:

Dive in to Python 中,我读到了 and 运算符的特殊性质,and以及or布尔运算符的短路求值如何通过与C 中的三元运算符非常相似的and-or 技巧更简洁地表达条件。

C:

Python:

这似乎派上了用场,因为 lambda 函数在 Python 中仅限于单行,但它使用逻辑语法来表达控制流。

从 Python 2.5 开始, inline-if似乎已经成为一种更易读的 and-or 技巧的语法:

所以我猜这是对可读性较差的和/或构造的pythonic替代品。即使我想嵌套多个条件,它看起来仍然很全面:

但是在一个充满不确定性的世界中,我经常发现自己编写了一些这样的代码来访问 abc :

因此,在inline-if的帮助下,我可能可以摆脱一些andsors,从而产生一段可读性很强的代码:

我还在这个食谱中发现了一种有点神秘的方法来处理条件

但这不会短路,如果条件结果不返回布尔值 0 或 1,则会导致各种错误。

我想知道的:

现在我想知道是否认为使用内联更可取/更pythonic -if如果向下兼容性不是一个问题,或者只是一个品味问题,以及在短路世界中的感觉如何评估?

更新

我刚刚意识到 inline-if 不仅仅是 and-or-trick 的语法糖,因为a在布尔上下文中为 false 时它不会失败。所以它可能更防故障。