A switch
/case
/else
expression, that is,
a switch
clause (switchClause
), followed by one or more case
expressions (caseExpressions
)
and optionally an else
expression (elseExpression
) preceded by an ‘else
’ keyword.
Examples:
switch (seq) case (null) "null" case (is []) "empty" else "nonempty" switch (text.first) case ('$') 2 case ('#') 16 case ('0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9') 10 else nothing
no subtypes hierarchy
Initializer |
SwitchCaseElseExpression(SwitchClause clause, [CaseExpression+] caseExpressions, DisjoiningExpression|IfElseExpression|LetExpression? elseExpression) Parameters:
|
Attributes | |
caseExpressions | shared [CaseExpression+] caseExpressions The |
children | shared actual <SwitchClause|CaseExpression|DisjoiningExpression|IfElseExpression|LetExpression>[] children The child nodes of this node. |
clause | shared SwitchClause clause The |
elseExpression | shared DisjoiningExpression|IfElseExpression|LetExpression? elseExpression The |
hash | shared actual Integer hash The hash value of the value, which allows the value to be an element of a hash-based set or key of a hash-based map. Implementations must respect the constraint that:
Therefore, a class which refines In general, Note that when executing on a Java Virtual Machine, the
64-bit Refines Object.hash |
Inherited Attributes |
Attributes inherited from: Expression |
Attributes inherited from: Node |
Attributes inherited from: Object hash , string |
Methods | |
copy | shared SwitchCaseElseExpression copy(SwitchClause clause = ..., [CaseExpression+] caseExpressions = ..., DisjoiningExpression|IfElseExpression|LetExpression? elseExpression = ...) Parameters:
|
equals | shared actual Boolean equals(Object that) Determine if two values are equal. Implementations should respect the constraints that:
Furthermore it is recommended that implementations
ensure that if A class which explicitly refines Note that an implementation of Refines Object.equals |
transform | shared actual Result transform<out Result>(Transformer<Result> transformer) Transform this node with the given If you have a Refines Node.transform |
visit | shared actual void visit(Visitor visitor) Visit this node with the given Refines Node.visit |
Inherited Methods |
Methods inherited from: Node |
Methods inherited from: Object equals |