Zum Inhalt springen

Dispose Pattern (ARCH5082)

Dieser Inhalt ist noch nicht in deiner Sprache verfügbar.

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.

type Repo struct {
db *sql.DB
}
func NewRepo(dsn string) (*Repo, error) {
db, err := sql.Open("postgres", dsn)
return &Repo{db: db}, err
}
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.