Defer của Go và Drop của Rust
(dev.to)- Để tự động giải phóng tài nguyên, trong Go có thể sử dụng
defer
→ Tuy nhiên, trong trường hợp tài nguyên được cấp phát bên trong vòng lặp thì không phải là không có cách, nhưng sẽ trở nên phức tạp
→ Luôn có khả năng mắc sai sót
- Trong Rust, có thể triển khai trait
Dropcho tài nguyên để tự động giải phóng tài nguyên
→ Ngay cả trong các trường hợp như vòng lặp cũng không gặp vấn đề như defer, và không cần gọi giải phóng tài nguyên thông qua defer
1 bình luận
Go cũng có một đề xuất về try-resource, nhưng có vẻ như họ không thực sự mấy quan tâm đến nó:
https://github.com/golang/go/issues/29120
Nhìn vào những điều như thế này, có lẽ việc không cố che giấu chuyện giải phóng tài nguyên xuống dưới một mô-đun khác cũng là một phần trong triết lý của Go.
https://stackoverflow.com/questions/59044658/…