Note: information on this page refers to Ceylon 1.0, not to the current release.
Argument lists
An argument list is not an expression itself, but is used in the formation of positional invocation expressions and tuple and iterable enumerations.
Usage
A positional argument list is simply a series of expressions, separated by
commas, shown here as a positional invocation of a put
function using
listed arguments:
put(1, "one")
A named argument list is a series of "named arguments" enclosed in braces.
This example of an invocation of a put
function uses
specified arguments.
put {
integer=1;
name="one";
}
Description
The type of a parameter list is a
Tuple
type formed from the
types of the argument expressions in the list.
Listed arguments
Listed arguments are just vanilla arguments in a positional invocation, as shown in the example in Usage. They are just an expressions which are evaluated to give the argument to the corresponding formal parameter.
TODO discuss listed arguments with variadic parameters
Spread arguments
A spread argument assigns the elements of an iterable object or tuple to one or more (possibly variadic) parameters.
You can spread any Iterable
over a variadic parameter:
void spreadIterable(String* names) {}
{String*} names = { "Tom", "Gavin" };
// A spread iterable
spreadIterable(*names);
You can also spread a Tuple
over more than one parameter. In other words a single tuple can be used to
provide the arguments of more than one parameter:
void spreadTuple(String name, Integer* numbers) {}
[String, Integer] tup = ["Tom", 1234];
// A spread tuple
spreadTuple(*tup);
// Variations
spreadTuple(*["Dick"]);
spreadTuple(*["Harry", 123, 466]);
spreadTuple(*["Alice"]);
spreadTuple("Eve", *[123, 466]);
Of course, the tuple type has to match the type of the parameter list, since the invocation is checked for typesafety by the compiler.
Comprehension arguments
A comprehension is a shorthand way of creating an
Iterable
to be passed as an argument.
Anonymous Arguments
Specified Arguments
Function Arguments
Getter Arguments
object
Arguments
See also
- The reference on invocation