3
假设我有类型如何在参数类型上定义参数类型?
immutable X{T}
a::T
end
immutable Y{T}
a::T
end
我想这样做
type A{T, U}
x::U{T}
y::T
end
这样的情况下,可能是A(X(a), a)
或A(Y(a), a)
它不能作为工作 LoadError: TypeError: Type{...} expression: expected Type{T}, got TypeVar
它的正确方法是什么?
但是,然后A.x是抽象类型而不是具体类型。这不会伤害表现吗? – colinfang
@colinfang我猜你实际上是在寻找类似这样的类型A {T,U <:Union {X {T},Y {T}}}',但现在茱莉亚仍然不支持三角形调度。目前,您可以使用类型A {T,U <:Union {X,Y}} +内部构造函数作为解决方法。希望我们会有三角派遣[在茱莉亚-0.6](https://github.com/JuliaLang/julia/issues/6984#issuecomment-49751358)。 – Gnimuc
我相信主人目前有三角派,所以一定要在0.6 –