Julia中2dim元组的类型别名可以定义为
"<br/>email@gmail.comhere{"userData": {"user_id":"4","name":"My Name here",
"email":email@gmail.com","username":"myusernamehere",
"token":"c0045c0d75e48f62919b1c0d16461af854049615df2c0d9a7bd755e9679e662a"}}"
以同样的方式,3dim将是
const Tuple2f = Tuple{Float64, Float64}
但是如何定义一个具有任意数量的元素的元素,而这些元素不能直接编码?
答案 0 :(得分:3)
NTuple
满足您的需求,并通过示例假设所有元素都属于同一类型:
julia> Threes = NTuple{3, Int}
Tuple{Int64,Int64,Int64}
julia> isa((2, 0, 16), Threes)
true
julia> SoManyFloats{N} = NTuple{N, Float64}
Tuple{Vararg{Float64,N}} where N
julia> isa((31.0, 33.58), SoManyFloats{2})
true
答案 1 :(得分:2)
Julia支持Vararg Tuple Types。您可以通过将元组的最后一个参数设为Vararg
类型来实现所需的功能。这是带有任意数量的Tuple
参数的Float64
类型的示例。
julia> TupleArbf = Tuple{Vararg{Float64}}
Tuple{Vararg{Float64,N} where N}
julia> const Tuple2f = Tuple{Float64, Float64}
Tuple{Float64,Float64}
julia> const Tuple3f = Tuple{Float64, Float64, Float64}
Tuple{Float64,Float64,Float64}
julia> a = (1.0, 2.0); b = (1.0, 2.0, 3.0, 4.0);
julia> isa(a, Tuple2f)
true
julia> isa(a, TupleArbf)
true
julia> isa(b, TupleArbf)
true
julia> isa(b, Tuple2f)
false
julia> Tuple2f <: TupleArbf
true
julia> Tuple3f <: TupleArbf
true
请注意,Vararg
应该是Tuple
的最后一个参数,参数之前的类型可以是您想要的任何类型。