多个返回值
元组经常用于多个返回值。许多标准库,包括可迭代接口的两个函数 (next
和 done
),返回包含两个相关但不同的值的元组。
在某些情况下,可以省略元组周围的括号,使多个返回值更容易实现。例如,我们可以创建一个函数来返回实数的正负平方根:
julia> pmsqrt(x::Real) = sqrt(x), -sqrt(x)
pmsqrt (generic function with 1 method)
julia> pmsqrt(4)
(2.0,-2.0)
解构赋值可用于解包多个返回值。要将平方根存储在变量 a
和 b
中,只需编写:
julia> a, b = pmsqrt(9.0)
(3.0,-3.0)
julia> a
3.0
julia> b
-3.0
另一个例子是 divrem
和 fldmod
函数,它们同时执行整数(分别截断或分层 )除法和余数运算:
julia> q, r = divrem(10, 3)
(3,1)
julia> q
3
julia> r
1