我开始定义这样的类型:
type MyType{E<:Number, A<:AbstractArray{E, 1}}
x::A
end
也就是说,MyType拥有某种类型的AbstractArray,其元素是某种类型的Number。 Julia接受我的类型定义,我可以构造这样的实例:
MyType{Int,Array{Int,1}}([1,2,3])
但是,当我向我的类型添加另一个字段时,我遇到了一个问题。定义此类型:
type MyType2{E<:Number, A<:AbstractArray{E, 1}}
x::A
y::E
end
给了我这个:
E not defined
while loading In[1], in expression starting on line 1
为什么会出现此错误?是否有工作或我应该使用的其他技术?我的目标是让元素类型和数组类型都是我的类型的参数。这是为了允许我的代码使用任何数字类型以及Arrays或SubArrays,而不会产生性能损失,而这些性能损失似乎与将字段声明为具有抽象类型相关联。