1
私は現在Juliaでプログラミングしており、定義された型の配列をパラメータとして持つメソッド(クラスProbDataのコンストラクタ)が必要です。私が現在行っていることは次のとおりです。Julia:メソッドがパラメータとして配列を取るようにする
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は3つのサブタイプを持つ要約です。私がしようとすると、
x = DetVariable("test", 0.15)
P = ProbData([x])
私は、このエラーメッセージが表示されます:
ERROR: LoadError: MethodError: 'convert' has no method matching convert(::Type{ProbData}, ::Array{DetVariable.jl,1})
どのように私はこの問題を解決することができますか?私はこの言語を数日間学んだので、やってはいけないことを指摘できれば、それもありがたいです。
編集:コンストラクタのパラメータ配列を抽象配列ではなく特定の型の配列に定義すると、コードが適切に動作することがわかりました。しかし、配列のパラメータが必要です。配列の要素はBaseVariableの任意のサブタイプにすることができます。