2 คะแนน โดย ehlegeth 2021-12-10 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • สำหรับการปล่อยทรัพยากรโดยอัตโนมัติ ใน Go สามารถใช้ defer ได้

→ แต่หากมีการจัดสรรทรัพยากรภายในลูป แม้จะไม่ใช่ว่าไม่มีวิธี แต่จะซับซ้อนขึ้น

→ มีโอกาสพลาดได้เสมอ

  • ใน Rust สามารถปล่อยทรัพยากรโดยอัตโนมัติได้ด้วยการ implement Drop trait ให้กับทรัพยากร

→ แม้ในกรณีอย่างลูปก็ไม่มีปัญหาแบบเดียวกับ defer และไม่จำเป็นต้องเรียกการปล่อยทรัพยากรผ่าน defer

1 ความคิดเห็น

 
ehlegeth 2021-12-10

ใน Go ก็มีข้อเสนอเกี่ยวกับ try-resource อยู่เหมือนกัน แต่ดูเหมือนจะไม่ได้ให้ความสำคัญกันสักเท่าไร:

https://github.com/golang/go/issues/29120

พอเห็นอะไรแบบนี้ ก็รู้สึกได้ว่า การไม่ซ่อนการปล่อยทรัพยากรไว้ใต้โมดูลอื่น ก็น่าจะเป็นส่วนหนึ่งของปรัชญาใน Go เหมือนกันครับ

https://stackoverflow.com/questions/59044658/…