From f1fe463b0593efa5618e9f7b4a83a8f1aeeeb7d3 Mon Sep 17 00:00:00 2001 From: Sangeeth Sudheer Date: Wed, 1 May 2024 18:55:16 +0530 Subject: [PATCH] Add defer --- defers/defers.go | 37 +++++++++++++++++++++++++++++++++++++ main.go | 6 ++++-- 2 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 defers/defers.go diff --git a/defers/defers.go b/defers/defers.go new file mode 100644 index 0000000..a17a68b --- /dev/null +++ b/defers/defers.go @@ -0,0 +1,37 @@ +package defers + +import ( + "fmt" + "os" +) + +func Defers() { + f := createFile("/tmp/defers.go.txt") + defer closeFile(f) + writeFile(f) +} + +func createFile(path string) *os.File { + f, err := os.Create(path) + + if err != nil { + panic(err) + } + + return f +} + +func closeFile(f *os.File) { + fmt.Println("Closing file") + err := f.Close() + + if err != nil { + fmt.Fprintf(os.Stderr, "something went wrong closing file: %v\n", err) + os.Exit(1) + } +} + +func writeFile(f *os.File) { + fmt.Println("Writing something to the file") + fmt.Fprintln(f, "Hello from defers.go!") +} diff --git a/main.go b/main.go index eb1a714..0e6aa14 100644 --- a/main.go +++ b/main.go @@ -19,7 +19,8 @@ package main // import "git.sangeeth.dev/gobyexample/mutex" // import "git.sangeeth.dev/gobyexample/statefulgoroutines" // import "git.sangeeth.dev/gobyexample/sorting" -import "git.sangeeth.dev/gobyexample/panic" +// import "git.sangeeth.dev/gobyexample/panic" +import "git.sangeeth.dev/gobyexample/defers" func main() { // runes.Runes() @@ -41,5 +42,6 @@ func main() { // mutex.Mutex() // statefulgoroutines.StatefulGoroutines() // sorting.Sorting() - panic.Panic() + // panic.Panic() + defers.Defers() }