问题标签 [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.
sql - 是否评估了 SQL WHERE 子句短路?
SQL WHERE 子句中的布尔表达式是否短路评估 ?
例如:
如果@key IS NULL
评估为true
,@key IS NOT NULL AND @key = t.Key
评估?
如果没有,为什么不呢?
如果是,是否有保证?它是 ANSI SQL 的一部分还是特定于数据库?
如果特定于数据库,SQLServer?甲骨文?MySQL?
c# - 我不喜欢这个...这是在欺骗语言吗?
我已经看过几次类似的东西......我讨厌它。这基本上是“欺骗”语言吗?或者..你会认为这是“好的”,因为 IsNullOrEmpty 总是首先被评估?
(我们可以争论一个字符串在从函数中出来时是否应该为 NULL,但这并不是真正的问题。)
编辑: 再次感谢大家提醒我这种语言基础。虽然我知道它“为什么”起作用,但我不敢相信我不知道/不记得这个概念的名称。
(以防有人想要任何背景。我在对由 NULL 字符串和 .Length > x 异常生成的异常进行故障排除时遇到了这个问题......在代码的不同位置。所以当我看到上面的代码时,除了其他所有内容之外,我的挫败感从那里接管了。)
java - Java 三元(立即 if)求值
我找不到规范的相关部分来回答这个问题。在 Java 的条件运算符语句中,是否同时评估了真假参数?
那么以下是否会引发 NullPointerException
c++ - 请从 Accelerated C++ 解释以下内容
我不明白 Accelerated C++ 的以下摘录:
开始于
因为|| 是左结合的,并且由于 ||、== 和 - 的相对优先级,
r == 0 || r == 行 - 1 || c == 0 || c == cols - 1 的含义与我们将其所有子表达式放在括号中的含义相同:
((r == 0 || r == (rows - 1)) || c == 0) || c == (cols - 1)
直到
我不明白这一点。你怎么会用你自己的话告诉我同样的事情?
language-agnostic - 所有编程语言都有布尔短路评估吗?
在 PHP 代码中
当第一个操作数计算为 时false
,b()
将不计算。
同样,在
当第一个操作数计算为 时true
,b()
将不计算..
这适用于所有语言,如 Java、C# 等吗?
这是我们使用的测试代码。
iphone - 使用“obj!= nil”时 iPhone 上的 EXC_BAD_ACCESS
我在 Objective-C 中有一行非常简单的代码:
有时,我无法判断,游戏在这行代码上崩溃,并带有 EXC-BAD-ACCESS。通常似乎是从比赛场地中移除某些东西的时间,所以我猜测selectedEntity是什么被释放了,然后就是这个结果。除了不可能选择退出实体(但谁知道,也许这在我的代码中实际上并非如此......),事实上我在访问之前专门检查是否存在selectedEntity意味着我应该这里没有任何问题。Objective-C 应该支持布尔短路,但它似乎不是编辑:看起来短路与问题无关。
另外,我在这个代码块周围放了一个@try/@catch,因为我知道它每隔一段时间就会爆炸,但这似乎被忽略了(我猜 EXC-BAD-ACCESS 无法被捕获)。
所以基本上我想知道是否有人知道我可以抓住它并把它扔掉(因为我不在乎这个错误,只要它不会导致游戏崩溃)或者可以解释为什么它可能会发生. 我知道 Objective-C 用“nil”值做了一些奇怪的事情,所以我猜它指向一些既不是对象指针也不是 nil 的奇怪空间。
编辑:澄清一下,我知道下面的代码是错误的,这就是我猜想在我的程序中发生的事情。我在问这是否会导致问题——确实如此。:-)
编辑:看起来有一个边缘案例允许您在实体被删除之前选择它。所以,看起来代码的进展是这样的:
所以我猜是因为 Autorelease 池还没有被释放,所以对象不是 nil,但它的保留计数是 0,所以无论如何都不允许访问它......或者类似的东西?
另外,我的游戏是单线程的,所以这不是线程问题。
编辑:我通过两种方式解决了这个问题。首先,我不允许在那个边缘案例中选择实体。其次,我不只是调用 [entities removeObjectAtIndex:i] (删除将被删除的任何实体的代码),而是将其更改为:
只需确保在释放变量的同时将 nil 分配给变量,正如 jib 建议的那样。
matlab - MATLAB中的&和&&有什么区别?
MATLAB中的逻辑运算符&
和逻辑运算符有什么区别?&&
perl - Perl 的 ( or, and ) 和 ( ||, && ) 短路运算符有什么区别?
这些子程序中的哪一个不像另一个?
我从 C 和 Perl 4 来到 Perl 5 并一直使用||
,直到我看到更多的脚本在使用or
并且我喜欢它的外观。但正如上面的测验所示,对于粗心的人来说,它并非没有陷阱。对于同时使用这两种结构或大量or
使用 .
python - 如何实现这种行为?Python“短路”测试
我有以下代码:
我需要知道以下几点:如果 if 条件评估为 true,该函数是否会停止在列表中查找并且永远不会返回 False?还是我需要一个中断声明?
如果以下代码不能解决我的问题,我可以用什么来模拟该行为?
谢谢