多个返回值

元组经常用于多个返回值。许多标准库,包括可迭代接口的两个函数 (nextdone),返回包含两个相关但不同的值的元组。

在某些情况下,可以省略元组周围的括号,使多个返回值更容易实现。例如,我们可以创建一个函数来返回实数的正负平方根:

julia> pmsqrt(x::Real) = sqrt(x), -sqrt(x)
pmsqrt (generic function with 1 method)

julia> pmsqrt(4)
(2.0,-2.0)

解构赋值可用于解包多个返回值。要将平方根存储在变量 ab 中,只需编写:

julia> a, b = pmsqrt(9.0)
(3.0,-3.0)

julia> a
3.0

julia> b
-3.0

另一个例子是 divremfldmod 函数,它们同时执行整数(分别截断或分层 )除法和余数运算:

julia> q, r = divrem(10, 3)
(3,1)

julia> q
3

julia> r
1