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

java - NullPointerException 通过 Java 三元运算符的自动装箱行为

NullPointerException前几天,由于三元运算符中的意外类型转换,我遇到了一个非常奇怪的问题。鉴于此(无用的示例)功能:

我期望以下两个代码段在编译后完全相同:

对比

.

事实证明, if conditionis trueif- 语句工作正常,而第二个代码段中的三元运算抛出NullPointerException. 似乎三元运算已决定在int将结果自动装箱回Integer!?! 事实上,如果我明确地将0to强制转换Integer,异常就会消失。换句话说:

不一样:

.

因此,三元运算符和等效语句之间似乎存在字节码差异if-else(这是我没想到的)。这提出了三个问题:为什么会有差异?这是三元实现中的错误还是类型转换的原因?鉴于存在差异,三元运算的性能是否比等效的语句更高或更低if(我知道,差异不会很大,但仍然如此)?

0 投票
1 回答
268 浏览

python - 将 kwargs 传递给 re.sub()

在 Python 中,我试图在模板字符串中实现一个伪三元运算符。如果kwargs具有特定键,则将值插入到字符串中。

re模块有一种方法可以完全满足我的需求re.sub(),您可以传递一个函数以在匹配时调用。我不能做的是传递**kwargs给它。代码如下

if match.groups()[0] in kwargs:当然是问题,因为 process_pseudo_ternarykwargs是空的。

关于如何通过这些的任何想法?m.sub(function, string)不接受争论。

最后的字符串是:(some text val_if_true some text因为字典有名为“pseudo_test”的键)。

随意将我重定向到字符串中三元运算符的不同实现。我知道Python 条件字符串格式。我需要三元在字符​​串中,而不是在字符串的格式化元组/字典中。

0 投票
3 回答
1757 浏览

javascript - 了解三元运算符

我有以下代码:

我什至困惑从哪里开始。是|| 二元运算符?为什么开头有逗号?我想了解这段代码是如何工作的,并使用常规的 if、else、任何提示来重写它?谢谢!

0 投票
5 回答
100 浏览

php - 嵌套三元运算符输出奇怪的结果

这将输出“选项 1”。我不知道它有什么问题。

谢谢!

0 投票
2 回答
52 浏览

python - 三元和打印组合给出奇怪的结果

如果某件事是真的,我试图使用一个三元来打印一个字符串,如果不是的话(足够简单,对吧?)。它没有给出任何错误,并且似乎不会造成任何麻烦。然而,跑步时...

...打印出来

两次。例如,它打印以下内容:

如果您愿意,为了查看变量是什么(这无关紧要,因为这只是一个概念问题),您可以在此处查看其余代码

考虑到它可能是变量,我尝试单独打印语句(没有三元)并且它们按我的预期出现(即没有奇怪的重复)。知道变量没问题,我尝试用括号括起来字符串(以防止字符串混合),但是,由于 python 逐字解释它们,它们以数组而不是字符串的形式出现。此外,+ 符号(代替逗号)不起作用,因为 python 无法组合数据类型。我最终将声明更改为

它工作正常。

除了不是很好的编码,为什么第一个字符串被打印两次?

0 投票
1 回答
1645 浏览

jsp - JSP/Java 三元运算符在呈现的属性 JSTL 中返回布尔值和正则表达式检查

这是将 Servlet 异常作为无效表达式错误抛出的示例代码。

数据类型因此是:

想在 JSTL 标记中使用它:

现在,如果这可行,我想添加一个方法调用,而不是在 JSP 本身内进行 RegEx 检查。这也不起作用 - 可能与相同的语法问题有关。

我的 JSP 代码是这样的:

这也不起作用:

因此 beanName.methodName1 是:

或者,我尝试在 bean 类中使用 getter/setter 方法来获取和设置属性。在 JSP 中也不起作用。不知道如何解决。我需要使用另一个类的 bean 数据执行验证以显示某些结果。

这里是setter/getter的方法,需要弄清楚如何使用这个,然后,在JSP验证中。

beanName.java 类

0 投票
2 回答
9236 浏览

php - PHP字符串中的三元运算符

我想在字符串中评估一个简单的三元运算符,但似乎找不到正确的语法。

我的代码如下所示:

但我似乎无法让它正常工作。关于如何实现这一点的任何想法?

0 投票
4 回答
6679 浏览

python - 在 python 三元条件的任一侧使用语句

为什么禁止在 python 三元条件的任一侧使用语句?我看不出以下一些幼稚的语法示例可能模棱两可或损坏的任何明显原因 - 但我确信必须有充分的理由来禁止它!

你能举一个例子,允许在三元组中使用语句可能是危险的或定义不明确的吗?

0 投票
2 回答
102 浏览

c++ - cpp中的三元运算符可能吗?

我正在考虑在 cpp 中实现一个类似于“<<”的三元 put 运算符:

这可能吗?它已经存在了吗?一句话:我记得看过这个:

这不是已经是三元运算符了吗?

0 投票
2 回答
554 浏览

python - 简化复杂的 if-else 条件以检查是否 len(list) =0 - Python

我正在尝试检查 sent1 或 sent2 的长度是否为零,如果他们有我想设置 sent_witn_not_null非零列表的列表。但是我写的 if-else 条件似乎很复杂。这样做的更简单方法是什么?