Julia的元组在实际工作情况中有什么具体的应用

学了这么长时间的julia,前面的内容都好说,但是现在度julia的元组理解有点困难,主要是不知道元组的具体应用场景,有谁能举一个julia元组使用的具体事例吗?

When to use tuples? - New to Julia - Julia Programming Language (julialang.org)

1 个赞

简单来说:元组的性能比数组要高的多。恰当的使用元组是一个零开销的东西。

举一个例子:当你进行函数调用或者处理返回值的时候,Julia 内部的数据都是以元组的形式提供给你的。

位置参数以 Tuple 进行打包:

julia> f(args...) = args
f (generic function with 1 method)

julia> args = f(1, 2, 3)
(1, 2, 3)

关键词参数以 NamedTuple 进行打包:

julia> g(; kwargs...) = kwargs
g (generic function with 1 method)

julia> kwargs = g(x=1, y=2)
pairs(::NamedTuple) with 2 entries:
  :x => 1
  :y => 2

julia> typeof(kwargs)
Base.Pairs{Symbol, Int64, Tuple{Symbol, Symbol}, NamedTuple{(:x, :y), Tuple{Int64, Int64}}}

julia> values(kwargs)
(x = 1, y = 2)

julia> typeof(values(kwargs))
NamedTuple{(:x, :y), Tuple{Int64, Int64}}
1 个赞