函數,應當被區分紅兩種:純函數和改寫函數。函數
在 Rust 中,若是一個函數會修改數據,那麼傳入的參數在標記上,就會和那些不會修改參數內容的函數不一樣。垃圾回收
在 Haskell 中,只有純函數,不純的函數的實現比較複雜,而在 C 語言中,修改數據的函數,在垃圾回收的時候要當心了,由於通過函數調用,就會出現數據更新,謹慎的垃圾回收策略會消除這些改動。數據
99.9% 的函數調用只會使用一次臨時數據,只有極少的過程當中,屢次調用一個數據,在全部權的系統中,若是被函數調用拿走使用權,那麼就會被提早清理掉。語言
在 C 中,全部的垃圾回收都要本身處理,在 Rust 中,全部要保留的東西,都要及時聲明,這麼好的衛生環境,固然要有良好的衛生習慣才能適應。習慣