Voldemort – he who must not be named – types sind Typen, deren Namen im Quellcode nicht notiert werden können. In Rust haben Schließungen solche Typen, weil der Compiler generates a new internal type for each closure. Die einzige Möglichkeit, eine Closure als Funktionsargument zu akzeptieren, besteht darin, einen generischen Typ (normalerweise F
genannt) zu akzeptieren, der als Fn()
10 (oder ähnlich) definiert ist.Sind Rust-Referenzen (normalerweise) Voldemort-Typen?
Die Referenzen in Rust enthalten immer einen Lebensdauerparameter, auch wenn diese Lebensdauer normalerweise entfallen kann. Lebenszeiten können nicht explizit benannt werden, da sie einen komplexen Compiler-internen Bereich darstellen. Die einzige Möglichkeit zur Interaktion mit Lebensdauern besteht in der Verwendung eines generischen Parameters (normalerweise 'a
genannt), der für jede Lebenszeit steht (möglicherweise durch eine weitere Lebenszeit begrenzt). Natürlich gibt es 'static
die kann genannt werden, aber dies ist ein Sonderfall und steht nicht in Konflikt mit meiner Argumentation.
Also: sind Rust Referenzen Voldemort Typen? Oder missverstehe ich den Begriff "Voldemort Typ" oder Rust Referenzen?