Hlavní navigace

Názor k článku Přetěžování operátorů a správa paměti v programovacím jazyku Rust od Pavel Tišnovský - Ajo :-) Současný překladač si moc nehlídá, co...

  • 7. 1. 2017 19:50

    Pavel Tišnovský

    Ajo :-) Současný překladač si moc nehlídá, co se v Drop děje. Je to pro něj metoda jako každá jiná, jen se snaží dodržovat kontrolu ownershipu (borrow atd.). Na druhou stranu to "předání jinam" je hodně omezené, protože pokud to bude například jiné vlákno, stejně se použije Arc a metoda Send.

    Jinak překladač toho nehlídá víc, například toto je trošku problém (AFAIK se to ale moc nekontroluje nikde):

    impl Drop for Complex {
        fn drop(&mut self) {
            let c = Complex::new(2.,2.);
            println!("Dropping complex number: {:}+{:}i", self.real, self.imag);
        }
    }