2P by ehlegeth 2021-12-10 | favorite | 댓글 1개

- 리소스를 자동으로 해제하기 위해서 Go에서는 Defer를 사용할 수 있음
ㅤ→ 하지만, 루프 내에서 리소스가 할당되거나 하는 경우에는 방법이 없는 것은 아니지만 복잡해짐
ㅤ→ 실수할 여지가 항상 있음
- Rust에서는 리소스에 대해 Drop trait을 구현해 리소스를 자동으로 해제할 수 있음
ㅤ→ 루프 등의 경우에도 Defer와 같은 문제가 없고 Defer를 통한 리소스 해제 호출이 필요하지 않음

Go에도 try-resource에 대한 제안은 있지만 딱히 신경쓰는 것 같지는 않네요:
https://github.com/golang/go/issues/29120

이런 것을 보면, 리소스의 해제를 다른 모듈 아래로 감추지 않으려고 하는 것은 Go의 철학이기도 한 것 같구요.
https://stackoverflow.com/questions/59044658/…