Defer é uma palavra reservada do Go que envia a função para uma lista de chamadas. Essas chamadas serão executadas depois que a função onde o defer se encontra terminar sua execução.
O defer é muito utilizado para realizar operações de limpeza, como por exemplo, fechar conexões com banco de dados, fechar stream de arquivos e etc…
Observe a função abaixo.
func CopyFile(dstName, srcName string) (written int64, err error) { src, err := os.Open(srcName) if err != nil { return } dst, err := os.Create(dstName) if err != nil { return } written, err = io.Copy(dst, src) dst.Close() src.Close() return }Leia mais »