GoのDeferとRustのDrop
(dev.to)- リソースを自動的に解放するために、GoではDeferを使うことができる
→ ただし、ループ内でリソースが割り当てられるような場合は、不可能ではないものの複雑になる
→ 常にミスをする余地がある
- Rustでは、リソースに対してDrop traitを実装することで、リソースを自動的に解放できる
→ ループなどの場合でもDeferのような問題はなく、Deferによるリソース解放の呼び出しも不要
→ ただし、ループ内でリソースが割り当てられるような場合は、不可能ではないものの複雑になる
→ 常にミスをする余地がある
→ ループなどの場合でもDeferのような問題はなく、Deferによるリソース解放の呼び出しも不要
1件のコメント
Goにも try-resource に関する提案はありますが、特に気にしているようには見えませんね:
https://github.com/golang/go/issues/29120
こういうところを見ると、リソースの解放を別のモジュールの下に隠さないようにしているのは、Go の哲学でもあるように思います。
https://stackoverflow.com/questions/59044658/…