Note: information on this page refers to Ceylon 1.2, not to the current release.
else
operator
The left-associative, binary else
operator is used to provide a default value
when it's left operand is null
.
Usage
void m(String? s) {
String s2 = s else "";
}
Description
Definition
The else
operator is defined in terms of an if
expression as follows
if (exists lhs) then lhs else rhs
See the language specification for more details.
The then
/else
idiom
The then
operator is often used with the else
operator to emulate
C's ternary operator cond ? when-true-expr : when-false-expr
, like so
T|F result = cond then whenTrueExpr else whenFalseExpr;
Compared to if
expressions
Distinct from the then
/else
idiom Ceylon has a separate if
expression:
if (cond) then whenTrueExpr else whenFalseExpr;
The if
expression is more powerful than the then
/else
idiom, since it
supports flow typing of is
, exists
or nonempty
conditions to the branches
Type
The result type of the else
operator is given by the type expression Lhs&Object|Rhs
, where
Lhs
is the type of the left hand operand and
Rhs
is the type of the left hand operand.