Chapter 12. Tuples
This chapter presents one more built-in type, the tuple, and then shows how arrays, dictionaries, and tuples work together. It also introduces a useful feature for variable-length argument arrays, the gather and scatter operators.
Tuples Are Immutable
A tuple is a sequence of values. The values can be of any type, and they are indexed by integers, so in that respect tuples are a lot like arrays. The important difference is that tuples are immutable and that each element can have its own type.
Syntactically, a tuple is a comma-separated list of values:
julia>t='a','b','c','d','e'('a', 'b', 'c', 'd', 'e')
Although it is not necessary, it is common to enclose tuples in parentheses:
julia>t=('a','b','c','d','e')('a', 'b', 'c', 'd', 'e')
To create a tuple with a single element, you have to include a final comma:
julia>t1=('a',)('a',)julia>typeof(t1)Tuple{Char}
A value in parentheses without comma is not a tuple:
julia>t2=('a')'a': ASCII/Unicode U+0061 (category Ll: Letter,lowercase)julia>typeof(t2)Char
Another way to create a tuple is using the built-in function tuple. With no argument, it creates an empty tuple:
julia>tuple()()
If multiple arguments are provided, the result is a tuple with the given arguments:
julia>t3=tuple(1,'a',pi)(1, 'a', π = 3.1415926535897...)
Because tuple is the name of a built-in function, you should avoid using it as a variable name.
Most array operators also work on tuples. The bracket operator ...