Julia 朱莉娅:让方法以数组为参数
我目前正在Julia中编程,我想要一个方法(ProbData类的构造函数)将定义类型的数组作为其参数。我目前正在做的是:Julia 朱莉娅:让方法以数组为参数,julia,Julia,我目前正在Julia中编程,我想要一个方法(ProbData类的构造函数)将定义类型的数组作为其参数。我目前正在做的是: function ProbData(variables::AbstractArray{BaseVariable, 1}) instance = new() instance.numPara = size(variables, 1) instance.numRand = 0 for x = variables if x.var
function ProbData(variables::AbstractArray{BaseVariable, 1})
instance = new()
instance.numPara = size(variables, 1)
instance.numRand = 0
for x = variables
if x.variableType != "Det"
instance.numRand += 1
end
end
instance.getNumPara = function()
return instance.numPara
end
instance.getNumRand = function()
return instance.numRand
end
return instance
end
BaseVariable是具有三个子类型的抽象。当我尝试:
x = DetVariable("test", 0.15)
P = ProbData([x])
我收到以下错误消息:
ERROR: LoadError: MethodError: 'convert' has no method matching convert(::Type{ProbData}, ::Array{DetVariable.jl,1})
我怎样才能解决这个问题?我刚学了几天这门语言,所以如果你能指出我不该做什么,我也会很感激
编辑:我发现,如果我将构造函数的参数数组定义为某种类型的数组而不是抽象数组,那么代码将正常工作。但是,我需要参数为数组,其元素可以是BaseVariable的任何子类型。只需将函数声明更改为:
function ProbData{T<:BaseVariable}(variables::AbstractArray{T, 1})
函数ProbData{T