Dispose Pattern (ARCH5082)
Esta página aún no está disponible en tu idioma.
Key go.performance.dispose-pattern · Severity warning · Category performance
A struct holding a closeable field that exposes no Close method of its own means its owned resources never get released. Surface the ownership chain with a Close.
Incorrect
Section titled “Incorrect”type Repo struct { db *sql.DB}
func NewRepo(dsn string) (*Repo, error) { db, err := sql.Open("postgres", dsn) return &Repo{db: db}, err}Correct
Section titled “Correct”type Repo struct { db *sql.DB}
func NewRepo(dsn string) (*Repo, error) { db, err := sql.Open("postgres", dsn) return &Repo{db: db}, err}
func (r *Repo) Close() error { return r.db.Close()}Add a Close method to the struct that releases its closeable fields.