元组简介

Tuples 是任意不同对象的不可变有序集合,可以是相同类型,也可以是不同类型 。通常,使用 (x, y) 语法构造元组。

julia> tup = (1, 1.0, "Hello, World!")
(1,1.0,"Hello, World!")

可以使用索引语法检索元组的各个对象:

julia> tup[1]
1

julia> tup[2]
1.0

julia> tup[3]
"Hello, World!"

它们实现了可迭代接口 ,因此可以使用 for 循环进行迭代 :

julia> for item in tup
           println(item)
       end
1
1.0
Hello, World!

元组还支持各种通用集合函数,例如 reverselength

julia> reverse(tup)
("Hello, World!",1.0,1)

julia> length(tup)
3

此外,元组支持各种高阶集合操作,包括 anyallmapbroadcast

julia> map(typeof, tup)
(Int64,Float64,String)

julia> all(x -> x < 2, (1, 2, 3))
false

julia> all(x -> x < 4, (1, 2, 3))
true

julia> any(x -> x < 2, (1, 2, 3))
true

可以使用 () 构建空元组:

julia> ()
()

julia> isempty(ans)
true

但是,要构造一个元素的元组,需要使用尾随逗号。这是因为括号(())否则将被视为分组操作而不是构造元组。

julia> (1)
1

julia> (1,)
(1,)

为了保持一致性,对于具有多个元素的元组,也允许使用尾随逗号。

julia> (1, 2, 3,)
(1,2,3)