루프 내부의 defer 문을 보고합니다.

루프에 사용된 defer 문은 리소스 누수 또는 예측할 수 없는 구문 실행 순서로 이어질 수 있습니다.

예:

func main() {
 for {
  field, err := db.Query("SELECT 1")
  if err != nil {
   // ...
  }
  defer field.Close()
  // ...
 }
}

루프 내부의 defer row.Close() 호출은 함수가 실행을 마치기 전까지 실행되지 않습니다. for 루프의 각 단계의 마지막에서 실행되는 것이 아닙니다. 이러한 구현은 함수 스택 오버플로 또는 다른 문제로 이어질 수 있습니다.