问题标签 [logical-operators]
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.
c++ - C++ 中是否存在非短路逻辑“与”?
tl;dr:C++ 中是否存在非短路逻辑与(类似于 &&)?
我有 2 个要调用的函数,并使用返回值来计算第三个复合函数的返回值。问题是我总是希望这两个函数都进行评估(因为它们输出有关系统状态的日志信息)
IE:
当然,函数中的条件并不是那么简单,是的,我意识到我可以使用临时变量来存储两个函数的返回,然后对临时变量执行“短路”逻辑,但是我想知道是否有一种“优雅”的语言解决方案可以在 Func3 中保持单行返回,同时仍然从两个函数中获取日志消息。
回复摘要:
“按位”运算符 | 和 & 可用于获得效果,但前提是返回类型为 bool。我在 ANSI C++ 规范中没有提到这一点。据我所知,这是有效的,因为“bool”被转换为int(true = 1,false = 0),然后使用按位运算符,然后将其转换回bool。
也可以使用运算符 " +
" 和 " "。*
这在 ANSI C++ 规范中没有提到,但可能由于与上述相同的原因而起作用。" +
" 给出 "or" 因为 true 被转换为 1,然后除了 0 之外的任何东西都被转换回 true。" *
" 适用于 "and" 因为 1 (true) * 0 (false) == 0(false) 和 1(true) * 1(true) == 1(true)
这两者似乎都依赖于隐式类型转换为整数然后返回布尔。这两者都可能会搞砸任何试图维护代码的人。
其他回答归结为“只使用临时人员”或“实施你自己的”,这不是问题。目标是查看是否已经在 C++ 标准中实现了一个运算符来执行此操作。
java - Java短路评估
我认为 Java 有短路评估,但这一行仍然抛出空指针异常:
在这种情况下perfectAgent
是null
,所以我只希望整个表达式返回false
,但我的应用程序仍然在这条线上崩溃,并出现 NullPointerException。
编辑,一般回应:
由于perfectAgent
is null
,不应该执行右边的任何内容&&
,因为表达式不可能为真。更重要的是,它不可能执行,perfectAgent.getAddress()
因为perfectAgent
它不包含有效的引用(它是 null 和 all)。我正在尝试使用短路评估来不必在单独的语句中检查 null,因为这会使逻辑更加草率。
编辑 2(或者,我是个白痴):是的,就像生活中的许多事情一样,你在向世界宣布你是个白痴之后就会立即找到答案。在这种情况下,我在执行其他操作时关闭了 Eclipse 的自动构建并且没有重新打开它,因此我正在调试与我的源代码不匹配的类文件。
c - C中赋值的逻辑值
两部分问题。
(curr_ptr = (void*)curr_data[1])
从逻辑上讲,评估结果是什么。TRUE
?
另外,我知道它相当骇人听闻,但while
声明是合法的 C 吗?我必须经过极大的扭曲才能将作业放在代码中的其他位置,所以如果我可以把它留在那里,我会非常好,但如果它太令人震惊以至于让每个人的眼球都燃烧起来,我会改变它.
django - 在 django-query 中实现逻辑解析器
这将是一个“长篇”。我包含尽可能多的代码和解释......如果有必要,我不会放弃代码。
我正在尝试在 django 查询系统中实现逻辑解析器。用户可以在其中针对应用于样本的标签提供复杂的查询。这本质上是科学样本库的一部分,用户可以在其中应用定义的标签(组织类型、研究的疾病等)。然后,他们可以创建由对这些标签的逻辑查询定义的样本的持久“篮子”。
将返回 Sample1。我使用了一个疯狂的 string-eval hack 来创建一组Q()
对象:
但是,这在任何需要复杂的操作顺序或按 () 分组的情况下都会失败。给定相同的示例数据,查询:(TagA OR TagB) AND NOT TagD
应该返回 Sample1、Sample4 但不返回。我已经实现了一个“一次一个”函数,它可以获取一个 Sample 对象并执行查询。但是,在我的实际数据库中,我有 ~40,000 个样本和 ~400 个标签(每个样本约 ~7 个),迭代技术需要 ~4 分钟才能完成所有样本。所以我每晚计算篮子,然后在白天把它们冷冻起来。我担心当我开始策划更多的篮子、样本和标签时,这将无法扩展。
有什么建议么?
javascript - (myVar && foo()) 在 JavaScript 中是什么意思?
上面的代码是什么意思?它相当于什么?
我认为它在一条线上运行。
c++ - 在 C++ 中计算 && (and) 运算符的哪一侧(左侧或右侧)
和 && 运算符评估哪个顺序
例如下面的代码
抛出了一个异常,即 alpha 正在被使用而没有被启动。我认为 && 左边的表达式总是会首先启动 alpha 的值,但似乎我可能错了
任何的想法?
谢谢
batch-file - DOS批处理中的逻辑运算符(“and”、“or”)
您将如何在 DOS 批处理文件中实现逻辑运算符?
php - 在 for 循环中使用 AND 与 &&(与优先级无关?)
为什么这段代码会打印“你好!” 四次,然后打印“1”:
虽然这不会打印出“你好!” 根本,然后打印“1”:
我知道 AND 和 && 有不同的优先级,但这似乎不适用于这里。我错过了什么?(我正在使用上面代码的变体,因为我将在 for 循环中使用 $blah,并且我想为其设置值)。谢谢你的帮助!
javascript - If 语句不适用于 And (&&) 运算符
我很难写出看似简单的 if 语句!我需要它来说明 mod 是否不等于 a、b 或 c - 然后执行此操作。这是我正在尝试但没有成功的方法:
当我在我的编辑器中输入它时,它说有一个错误,特别是“实体名称必须紧跟在实体引用中的 '&' 之后。” ..当我去测试时不工作。
任何帮助表示赞赏!
更新:网址:esber.squarespace.com
完整脚本:
我希望站点中的每个页面在页面加载时自动重定向到验证页面,除非它是验证页面 (/verify)、“您未验证”页面 (/not-verified) 或登录页面 (/ login) -- 除非用户已经通过设置 sessvars 进行了验证,否则他们可以继续访问主页。
为了测试这一点,我去 esber.squarespace.com 并单击右侧的一个菜单项(当我完成页面时,此菜单最终会被隐藏) - 当我尝试转到另一个页面而不验证我的首先我应该被重定向回 /verify 页面,但这并没有发生。
如果我将脚本修改为:
然后它工作正常(?)
php - 如何验证数据类型不匹配?(不是===假)
PHP中三等式匹配的反义词是什么?
!==
用法是否正确?谢谢你的帮助。