▲ | akoboldfrying 4 days ago | ||||||||||||||||||||||
defer is no worse than Java's try-with-resources. Neither is true RAII, because in both cases you, the caller, need to remember to write the wordy form ("try (...) {" or "defer ...") instead of the plain form ("..."), which will still compile but silently do the wrong thing. | |||||||||||||||||||||||
▲ | xyzzyz 4 days ago | parent [-] | ||||||||||||||||||||||
Sure, true RAII would be improvement over both, but the author's point is that Java is an improvement over Go, because the resource acquisition is lexical scoped, not function-scoped. Imagine if Java's `try (...) { }` didn't clear the resource when the try block ends, but rather when the wrapping method returns. That's how Go's defer works. | |||||||||||||||||||||||
|