Go에서 defer 사용
Go에서 defer 키워드를 사용하면 주변 함수가 반환되기 직전에 함수를 실행할 수 있습니다. 패닉 상황에도 촬영 가능.
함수에 배치된 코드 연기의 이점 종료
예:
Try-finally 리소스 정리:
func main() { f, err := os.Create("file") if err != nil { panic("cannot create file") } defer f.Close() fmt.Fprintf(f, "hello") }
패닉 처리를 사용한 최종 시도:
func main() { defer func() { msg := recover() fmt.Println(msg) }() f, err := os.Create(".") // . is the current directory if err != nil { panic("cannot create file") } defer f.Close() fmt.Fprintf(f, "hello") }
수정된 반품 값:
func yes() (text string) { defer func() { text = "no" }() return "yes" } func main() { fmt.Println(yes()) // Prints "no" }
요약하면 Go의 defer는 중첩된 블록 구조 없이 리소스 정리, 패닉 처리 및 실행 순서 제어를 보장하는 유연한 방법을 제공합니다.
위 내용은 Go의 `defer` 키워드는 자원 관리 및 패닉 처리를 어떻게 단순화합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!