2010-08-10 121 views
5

我的理解是,条件运算符(条件→结果:可选)通常被称为“三级运算符”和“三元运算符”。三级和三级之间的区别?

这些术语之间有什么区别?

回答

6

我从来没有听说过“三级”操作符,只有“三元”。我的猜测是这是一种滥用语言。

2

其中之一是不正确的。 Ternary来自这个事实,有三个参数使用(二元运算符使用两个参数)。 Tertiary来自third,错误的是。

10

第三纪是一个地质时期,6500万到180万年前。

尽管严重,“高等”的意思是“排名第三” - 不一定是价值,但可能按顺序,如小学,中学和高等教育。你需要一个与涉及三个参数有关的术语,那就是“三元”,并且与“二元”和“一元”一起使用。

+4

这就像维基百科。首先,我正在读关于三元的,然后突然我正在学习地质时期。 – 2010-08-10 13:12:32

12

它应该被称为“条件操作符”。 “三元运算符”表示它接受三个操作数。由于它是唯一的共同运营商,因此它有时被称为“三元运营商”。只有一个事实是巧合。 “第三运营商”更加错误。它意味着像“第三最重要的运营商”。

+0

那么“三级”的起源很可能只是“三元?”的误解/拼写错误 – 2016-10-04 17:40:03

1

Wikipedia

在计算机科学中的三元运营商(有时被误称为叔运算符)是一个操作符有三个参数。

我从来没有听说过它叫做“三级操作员”。所以,区别在于,使用一个会让你看起来像一个新手。我猜。

1

一个是正确的,一个是不正确

一个ternary operator与3个输入端的操作者,例如一个? B:C,它有3

一个tertiary操作arity将仅仅意味着第三操作?这实际上并没有任何意义

8

“有条件的经营者”是正确的名称。这是一个ternary operator,唯一一个在许多语言,这就是为什么它有时也被称为三元运算符。

我认为将它称为“第三”是不正确的。这个词意味着像“第三种选择”,有点像小学和中学将是第一和第二。

+0

我想知道还有什么其他的事情可能需要一个正好三个操作数的操作员来做?我可以想到两个一般的东西:计算c ^((c^b)&a),评估c一次(一个按位版本?:),并确定一个项目是否在一定范围内。还没有看到任何一种语言都是三元运算符(尽管有些语言提供了范围测试手段)。 – supercat 2010-08-10 14:37:27

+0

@supercat:范围检查就是一个很好的例子。我不知道我想写多少次'if(a 2010-08-10 15:01:26

+0

事实上,C语言中的三元运算符只是我能想到的唯一有用的东西,一个运算符可以做到哪一个函数不能做到,至少不是没有lambda表达式支持的风格,而AFAIK没有语言提供对于允许一个函数接受一个将返回指定值的委托的函数是有用的;只有在该函数调用委托时才会评估这个函数的参数)。 – supercat 2010-08-11 04:28:27

4

如果它被称为第三,这是错误的左右。

第三意思是 “第三[级]”,而三元装置 “具有三个部分。”这些不是编程定义 - 只是这些词的意思。

显然,操作者三元1 ? 2 : 3;),但是没有意义在这种情况下。