- Ternary operation
mathematics, a ternary operation is an n-aryoperation with n = 3. A ternary operation on a set A takes any given three elements of A and combines them to form a single element of A. An example of a ternary operation is the product in a heap.
computer sciencea ternary operator (sometimes called a "tertiary operator") [ [http://www.economicexpert.com/a/Ternary:operation.html Ternary operation] "economicexpert.com"] is an operator that takes three arguments. The arguments and result can be of different types.
Many programming languages that use C-like syntax feature a ternary operator,
, which defines a conditional expression. Since this operator is often the only existing ternary operator in the language, it is sometimes simply referred to as "the" ternary operator".
The ternary conditional operator was anticipated by
ALGOL, which allowed if then else to be used in expressions, for example:
"a" := if "x" > 0 then "x" else -"x".
Languages that emphasize
functional programming, such as Scheme, may define the plain if-then-else construction in terms of this ternary operator.For example, the Scheme expression
(if (> a b) a b)is equivalent in semantics to the C expression
(a > b) ? a : b.
Though it had been delayed for several years by disagreements over syntax, a ternary operator for Python was approved as
Python Enhancement Proposal308 and was added to the 2.5 release in September 2006. Python's ternary operator differs from the common
?:operator in the order of its operands; the general form is
op1 if condition else op2. This form invites considering
op1as the normal value and
op2as an exceptional case.
Version 9 of Visual Basic has added a ternary operator,
If(), in addition to the existing
IIf()function that had existed previously. As a true operator, it does not have the side effects and potential inefficiencies of the
The syntaxes of the tokens are similar -
If(condition [, op1] , op2)vs
IIf(condition, op1, op2). As mentioned above, the function call has significant disadvantages, because the subexpressions must all be evaluated, according to Visual Basic's
evaluation strategyfor function calls and the result will always be of type variant (VB) or object (VB.NET). The
If()operator however does not suffer from these problems as it supports conditional evaluation and determines the type of the expression based on the types of its operands.
?:, the ternary conditional expression
IIf, inline if function
* [http://msdn2.microsoft.com/en-us/library/ty67wk28(VS.80).aspx Description of Ternary Operator in C#]
* [http://msdn.microsoft.com/en-us/library/bb513985.aspx Description of If operator in Visual Basic]
* [http://www.python.org/peps/pep-0308.html Description of Ternary Conditional Expression in Python (PEP 308)]
* [http://www.diveintopython.org/power_of_introspection/and_or.html Alternative workaround for ternary conditional expression]
* [http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.25 Description in the Java Language Specification]
* [http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary Description in the PHP Language Documentation]
* [http://www.microsoft.com/downloads/details.aspx?familyid=39DE1DD0-F775-40BF-A191-09F5A95EF500&displaylang=en Visual Basic 9.0 Language Specification]
Wikimedia Foundation. 2010.