问题标签 [ternary]

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 投票
3 回答
2803 浏览

python - 带有列表理解的python三元迭代

三元迭代是否可行?我的意思的简化版本,尽管这个特定的例子可以用更好的方式完成:

一个更实际的例子:

0 投票
3 回答
1513 浏览

javascript - 这个三元运算符有什么问题?

我有一个对象menuNames应该维护一个菜单项列表。如果menuNames已经有slug,则增加值,如果它不包含slug,则将值设置为1。我这样做是为了跟踪唯一名称。我想最终得到类似的东西:

这不起作用(这将包含在遍历每个 slug 的循环中):

但这确实有效(这将包含在遍历每个 slug 的循环中):

0 投票
5 回答
5338 浏览

java - 三元运算符

为什么以下代码的输出是 9.0 而不是 9 ?如果三元运算符只不过是 if-else 分支的简短形式,那么为什么 java 编译器将 int 提升为 double ?

0 投票
1 回答
1825 浏览

checkbox - 签入/签入 HTML 复选框中的三元运算

我的 JavaScript 吐出动态 HTML,其中一个字段是基于布尔值的复选框,如下所示:

即使 Boolean 为 false ,我的复选框也始终返回选中状态。对三元运算有什么建议吗?

我也刚刚意识到,每行复选框都很难有 id。这是我的功能目前的样子:

函数 fnBuildWebSiteClipHtml(名称、url、id、allow_removal、use_full_screen){

}

第 8 行,我检查 allow_removal,然后检查 use_full_screen 是我试图让我的复选框跟随的行。对此的任何建议都非常感谢。

感谢您已经发布的回复,但我不确定在这种情况下如何适应。

0 投票
3 回答
587 浏览

php - PHP 中的简写 IF 语句

我想知道以下是否可能。我希望我在下面写的 if 语句在一行(三元)中。

我想在 cURL 的数组中使用三元(速记 php 代码)。

表单数据示例:

如果声明:

数组示例:

如果可能的话,有什么想法吗?

亲切的问候亚历克斯

0 投票
3 回答
4249 浏览

php - PHP三元内部连接没有别的?

我想检查 2 个变量是否相同,如果是,则回显一个字符串。这可能在串联中吗?并在不创建单独功能的情况下做到这一点?

例如

$var = 'here is the first part and '. ( $foo == $bar ) ? "the optional middle part" .' and the rest of the string.'

编辑

请注意,我正在寻找是否有办法在没有: ''. 如果您愿意,可以使用“二元运算符”。

0 投票
3 回答
220 浏览

c++ - 这个三元表达式的 if else 语句是什么等价的?

我已经在互联网上搜索三元/if else 等价物,但这似乎很奇怪,因为它一开始就有回报。

来自 cplusplus 网站:(条件)?(if_true) : (if_false)

谢谢你

0 投票
0 回答
401 浏览

diagram - 三元图(C++ 和 C#)的用户友好界面

有谁知道如何公开一个用户友好的界面或代码。我刚刚开发了一个绘制三元图的界面。我知道有些软件可以做同样的事情,但是有了这个,用户可以在三元图中选择一个特定的区域来绘制数据(例如,石油工程需要这种能力)。我还有用于 Delaunay 三角剖分、voroni 图、网格划分和颜色映射的 MATLAB、C++、C# 代码。我想也许它们对其他人有用。我希望我可以上传一些我的作品的照片,但我需要至少有 10 个声望。

谢谢,

0 投票
5 回答
756 浏览

php - 用PHP中的逻辑表达式替换IF

当我偶然发现类似这样的构造时,我正在重构一些旧代码:

现在看起来很奇怪,这要短得多

然后更具可读性(至少在最初的惊喜之后)

虽然更短的代码并不一定意味着更易读的代码,但我发现它位于上述两种“标准”方式的中间。

换句话说,而不是

可以简单地写

那么,这背后的原因是什么?是否可以像“不要重新发明轮子,写更易读的 if/else,如果你真的想缩短它,这就是三元运算符的用途”那么简单?

编辑:请记住,上面的代码是从原始代码快速派生出来的,只是一个使用“短路”代码的例子。如果可以,请不要建议代码改进,因为这不是问题的预期结果。

示例 2

0 投票
1 回答
319 浏览

c# - 使用三元语句将扩展方法分配给委托

假设

假设我们有一个接口,并且为该接口定义了以下扩展方法(它们的实现并不重要

问题

我们知道这两种扩展方法本质上是相同的,因为它们接受 2 个 type 参数IPerson和 return bool。现在,假设我们要将 1 个扩展方法分配给Func<IPerson, IPerson, bool>我们可以使用的类型的委托:

但是,如果我们将if语句转换为简写形式,如下所示:

我们得到编译错误信息:

无法确定条件表达式的类型,因为 'method.group' 和 'method.group' 之间没有隐式转换

问题

为什么会出现这个错误?是因为委托的性质是扩展方法吗?还是由于速记if语句如何确定结果类型?还是完全不同的东西?