Angenommen A
ist ein abstrakter Typ, ich habe eine Funktion f{T<:A}(x::Vector{A})
. So könnte x
Typ Vector{A}
oder Vector{B}
sein, wobei B <: A
. In der Mitte der Funktion möchte ich x
zu Vector{A}
umwandeln, damit es von einer anderen Funktion konsumiert werden kann, die diese Signatur erfordert.Wie kann Vector {T} (T <: A) am schnellsten an Vector {A} übergeben werden?
Was ist der beste Weg, das zu tun? Im Moment mache ich x = collect(A, x)
. Gibt es eine Möglichkeit, das Kopieren möglichst zu vermeiden?
Ich hatte gedacht, nur Bit-Typ würde effizient in einem Array gepackt werden. Oder zumindest unveränderlich mit Feldern, die alle Bit-Typ sind. – colinfang
Sie haben Recht; Ich war nicht genau genug in meiner Sprache. Ich habe nur diesen Teil der Begründung entfernt - die Un-Sicherheit der Operation ist ein guter Grund dafür, warum dies nicht unterstützt wird. –