我想创建一个嵌套的元组类型,它可以保存自己,或者它包含的特定类型。
所以我想:
typealias NestedTuple{T} Tuple{Union(T,NestedTuple{T}),Union(T,NestedTuple{T})}
然而,这会出现错误
LoadError: UndefVarError: NestedTuple not defined
这种typealias
通常如何完成?
(我在朱莉娅0.4)
答案 0 :(得分:1)
根据你正在做的事情来完成这项工作?
typealias NestedTuple0{N,T} Tuple{Union(T,N),Union(T,N)}
typealias NestedTuple{T} NestedTuple0{NestedTuple0{T},T}
注意:我只能在036而不是04
中尝试此操作一个例子:
function rnt(p)
np = 0.95*p
a=rand() <p ? rnt(np) : 1
b=rand() <p ? rnt(np) : 2
(a,b)
end
x=rnt(1.0)
typeof(x)<:NestedTuple{Int64} #returns true