Angenommen, ich möchte den Vektor zusammen mit seiner Norm speichern. Ich erwartete die entsprechende Typdefinition zu sein einfach:Funktion des Parametertyps in der Typdefinition
immutable VectorWithNorm1{Vec <: AbstractVector}
vec::Vec
norm::eltype(Vec)
end
Dies ist jedoch nicht wie beabsichtigt funktioniert:
julia> fieldtype(VectorWithNorm1{Vector{Float64}},:norm)
Any
Es scheint, ich
immutable VectorWithNorm2{Vec <: AbstractVector, Eltype}
vec::Vec
norm::Eltype
end
und verlassen sich auf zu tun haben der Benutzer den Parameter Eltype
nicht missbrauchen. Ist das richtig?
PS: Dies ist nur ein erfundenes Beispiel zur Veranschaulichung des Problems. Es ist nicht das eigentliche Problem, vor dem ich stehe.
Wie wäre es, es als 'Symbol' zu speichern? –
Könnten Sie das näher erläutern? – gTcV
Die Sache ist, dass Sie Laufzeitprüfung von [ob die Funktion als Norm angewendet werden kann] (http://docs.julaulang.org/en/latest/stdlib/base/#Base.applicable) in der __constructor__, aber Sie können das im Typ –