问题标签 [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 回答
509 浏览

javascript - 奇怪的三元运算符 Javascript

我试图了解三元运算符的工作原理,我遇到了这个例子:

这是什么意思?它像 AND 运算符一样使用吗?这如何转化为常规语句?a=0 之前的昏迷是什么意思?谢谢!

0 投票
4 回答
2188 浏览

c++ - 我们在条件三元运算符中使用逗号时发现了什么?

好吧,我对三元运算符中的逗号有疑问。废话少说,代码如下:

输出将如下所示:

这合法吗?

0 投票
2 回答
423 浏览

ruby-on-rails - Ruby 有没有更短的三元组?

这是我发现的最接近的,但它处理的是布尔值而不是数字: DRY up Ruby ternary

我试图避免 Ruby 中除以 0 的情况,同时保持代码更短且更易于阅读。

我想让以下代码更简洁:

或者

现在看来真的很难读。涉及的链接更多,因此percent_complete实际上要长一些。我也从一个方法返回这个值,所以它又变长了。

我想避免使用临时变量或缩短方法名称,因此希望了解另一种方法。

如果我可以避免必须输入两次“percent_complete”,那么这几乎可以解决它。

0 投票
6 回答
30945 浏览

java - Java:没有回报的三元。(用于方法调用)

我想知道是否可以进行三元运算但不返回任何内容。

如果在 Java 中不可能,那么在其他语言中是否可能,如果可以,哪些适用?

0 投票
2 回答
642 浏览

gnuplot - Gnuplot:对日期进行三元运算以过滤数据

我有以下格式的数据文件:

2012-02-05 2

2012-02-06 5

...

...

2012-02-10 11

我想绘制大于 2012-02-08 的数据。我尝试了以下三元运算,但它不起作用

使用 1 绘制 'datafile1':(strcol(1) gt "2012-02-08" ? $2 : 1/0) title "a" with lp lw 5,\

'datafile2' 使用 1:(strcol(1) gt "2012-02-08" ? $2 : 1/0) title "b" with lp lw 5

有什么建议么?谢谢。

0 投票
1 回答
264 浏览

operators - 三元运算符是否提高了执行速度?

可能重复:
If-Else 和 C 中的三元运算符之间的速度差异......?

这是一个很简单的问题,与 if else 语句相比,三元运算符是否提高了执行速度?

0 投票
3 回答
54 浏览

php - 如何,如果语句不被 php 理解?

我有一个if声明,我可以用两种方式写它:

第一个似乎不起作用,我不明白为什么??!

我也试过:

但它也不起作用。

有任何想法吗?

..我的意思是,我可以使用第二个选项,但我很好奇为什么它不起作用。

谢谢

0 投票
2 回答
772 浏览

c - 意外的结果,Gnu C 中的三元运算符

所以三元运算符 in 的运算符优先级对C我来说真的很奇怪。一个例子:

这似乎类似于这里的问题:
C++ 三元条件和赋值运算符优先级
三元运算符评估顺序

作为澄清,我知道括号使它起作用,正如我在原始帖子中的评论所表明的那样......

我只是想知道为什么语言作者会选择一种可能会欺骗人们的评估方法,而第一个语句似乎可以在编译器方面进行格式化以使其有效。

但是这些问题涉及左侧或类成员内的运算符,因为这种奇怪的行为发生在 RHS 上。

0 投票
2 回答
3954 浏览

c - 运算符优先级和三元运算符

我在 C 中有一个问题。

此代码打印 2 但我认为 a?b:c 返回 b=0 并且 0==0 返回 1。您能解释一下代码吗?

0 投票
1 回答
207 浏览

scala - 在相同的代码块上减少和折叠的奇怪行为

编辑
好的,@dhg 发现如果 fold() 的代码块未绑定到 val 则需要点方法语法(为什么在同一个代码块中使用 reduce() 可以使用空格方法语法,我不知道)。无论如何,最终结果是非常简洁的:

这在某种程度上否定了原始问题;即,在许多情况下,人们可以对非/或场景进行高阶处理,并避免“胖”、重复的 if/else 语句。

ORIGINAL
尝试在处理可能为空的集合(如 List[T])时减少 if/else 处理

例如,假设我需要获取最新的新闻文章来构建html 新闻的NodeSeq<li><a>links</a></li>

这没关系,非常简洁,但我发现自己想要采用三元风格来解决这些永远是非此即彼的情况:

我已经看到一些关于将三元数据拉到布尔值上的旧帖子,但很想知道有什么替代方案(如果有的话)来简化 if/else?

match {...}是,IMO 对于这种情况有点臃肿,而且for {...} yield似乎也没有多大帮助。