问题标签 [ternary-operator]
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.
php - 我可以在 PHP 类方法返回语句中使用三元吗?
我可以这样做吗?(我目前无法测试以亲自查看)
java - 括号是否应该始终放在三元运算符周围?
Checkstyle 抱怨以下问题:
并说括号是不必要的。
虽然没有它们,该声明当然可以正常工作,但如果有它们,它似乎更具可读性——否则,当我阅读它时,我倾向于看到:
首先,然后必须停下来考虑剩余的
部分,因为我的大脑已经走了一条路。
此外,每当我看到三元运算符时,我倾向于做同样的事情,除非它被分组在括号中。
那么:三元组周围的括号是否应该成为事实上的标准?有没有理由不把它们放在那里?
c# - 完整的 if/else 语句与条件运算符
可能的重复:
使用条件 ?: (三元)运算符
的好处 条件运算符慢吗?
大家好,
关于不同的 if/else 语句,我有一个非常简单的问题。
除了编写更少的代码之外,与完整的 if/else 语句相比,使用条件运算符还有其他好处吗?
使用它时是否有性能提升、编译代码减少或其他任何对我有益的东西?
感谢你的帮助
马尔科
c++ - 条件运算符的“无效转换”错误
我在这一行收到编译错误:
错误:
MenuItems 是以下类的 std::vector:
mn_yes 和 mn_no 是 std::strings。
编译器是 MinGW(与 code::blocks 一起分发的版本)。
c# - 三元运算符和 C# 中的 if 语句之间有区别吗?
我正在使用一个可为空的 DateTime 对象并遇到了一些奇怪的行为。这是一个示例函数:
据我所知,三元运算符的行应该与前面四行相同,但是VS2010给我一个编译错误,说<null>
和DateTime之间不存在转换(即使有问题的对象是'DateTime ?')。关于三元运算符,我应该知道些什么,或者这(喘气?)是一个错误?
c# - 使用条件运算符?检查空会话变量
看看这段代码:
基本上我想检查 HttpContext.Current.Session["pdfDocument"] 是否不为空,如果它不转换为布尔值,那么检查它的真假。
我试图避免嵌套 if 语句,并认为会有一种更优雅的方式来做到这一点。因此,我只对包含条件的答案感兴趣?操作员。
有小费吗?
php - 我在哪里可以读到用“?”完成的条件。和“:”(冒号)?
可能重复:
参考 - 这个符号在 PHP 中是什么意思?
我一直在用 if/else 或一年左右的时间做条件句。查看一些新代码,我看到一个似乎使用?
and:
而不是 if 和 else 的条件。我想了解更多关于这方面的信息,但我不确定用谷歌搜索什么来解释它是如何工作的。我该怎么做?
javascript - 三元(条件)运算符和样式
如果您首先讨厌三元条件运算符,则无需回复;)
我通常会看到它与赋值表达式一起使用,例如:
但是,我想用它来替换简单的代码,例如:
而是这样做:
我可能会在 JavaScript 中这样做。在上面它返回 undefined 所以它不需要赋值。我喜欢节省的空间,但想知道人们对这种类型的使用有何看法,因为我通常只看到三元与分配一起使用。
编辑:我已经看到暗示“隐藏意图”的答案。虽然经典地用在表达式中,但是这如何隐藏意图而不是在表达式中使用呢?尤其是在一种动态语言中,人们可能会看到到处都在使用三元运算符?
c# - 三元运算符 VB 与 C#:为什么将 Nothing 解析为零?
我只是朝自己的脚开枪,想知道是否有真正的理由使这种情况成为可能。
而且无论如何,为了方便未来的射手,这个问题可以保留。
假设我们在 vb.net 中有一个可为空的值:
我们想为它分配一个值,基于一个条件,并使用三元运算符,因为它是如此整洁和东西:
也就是说,如果条件是true
,则使用可空性,否则使用值。
在这一点上发生了枪击事件。没有明显的原因,VB 编译器决定 and 的通用基本类型Nothing
是Integer
,Integer
此时它默默地将语句转换为:
现在,如果您要在 C# 中执行此操作:
你会立即得到一个编译器错误,说它<null>
不能很好地与int
. 这很好,因为如果我这次采用 C# 方式,我的脚会更健康。要编译它,您必须显式编写:
现在,您可以在 VB 中执行相同的操作并获得您期望的正确空值:
但这首先需要你的脚射门。没有编译器错误,也没有警告。那是Explicit On
和Strict On
。
所以我的问题是,为什么?
我应该把它当作编译器错误吗?
或者有人可以解释为什么编译器会这样吗?