Class std::Tuple

Implements Iterable

Instances of the Tuple class are fixed-length, immutable sequences of values.

Tuple instances are constructed using the comma operator. By convention, tuple expressions are often placed within parentheses:

(1, 2, "x")    -- 3-tuple with items 1, 2 and "x"
1, 2, "x"      -- Equivalent to above, but without parentheses

There is special syntax for constructing an empty tuple and a single-item tuple:

()             -- An empty tuple
(True,)        -- A single-item tuple

See also: Tuple types in Introduction to Alore Type System.

Tuple methods

length() as Int
Return the length of the tuple.
iterator() as Iterator<Object>
Return an iterator object that can be used to sequentially iterate over the tuple items, starting from the first item.

Tuple operations

Tuple objects support the following operations:

tuple[n]
Access tuple items with the indexing operator. The index n must an integer, and it can be negative. Raise the IndexError exception if the index is not within bounds.
var a = ("a", 1, True)
a[0]        -- "a"
a[-1]       -- True
tuple == x, tuple < x
Tuples can be compared for equality and for lexicographic order. All the basic comparison operators are supported: ==, !=, <, <=, > and >=. Tuples can be compared with arrays, and an array and a tuple with the same items are equivalent.
x, y, z = tuple
Tuple objects can be expanded in a multi-assignment or a variable definition. The number of items in the lvalue must equal the length of the tuple.
var a = (1, 3, "x")
var x, y, z = a    -- x gets 1, y gets 3, z gets "x"
for x in tuple
Tuple items can be enumerated with a for loop, starting from the first item.
x in tuple
Test whether a tuple contains a specific object. Return a boolean value. The test is not recursive, i.e., tuples within tuples are not searched.
Str(tuple)
Return a string representation of the tuple contents.
Hash(tuple)
Return the hash value of a tuple.