Google에서 Java finalize와 같은 메소드가 있습니까? 만약 내가 같은 형식의 구조체를 가지고있다Google go java equivalent of java finalize 메서드
type Foo struct {
f *os.File
....
}
func (p *Foo) finalize() {
p.f.close()
}
내가 가비지 수집 때 파일이 닫혀 있는지 어떻게 확인할 수 있습니까?
이 생성자는'런타임 호출 예를 들어, 만약 당신이 (자바)를했다. SetFinalizer' 그래서 gc'ed (프로그램 종료 때까지 언급되지 않았던 것처럼) 때 어쨌든 그것은 닫히게됩니다. 나만의 파이널 라이저를 제공 할 필요가 없습니다. – nos
@ 노골적인 나는 그것을 깨닫는다. 나는 내 대답에 그것을 포함해야한다고 생각하지만 나는 내 전화에있다. – cthom06
'SetFinalizer'를 사용하는 것은 나쁜 습관입니다. 대신 Dustin의 대답을 취하십시오 :'defer' 키워드를 사용하십시오. 자원 정리를 위해 설계되었습니다. – kirakun