Di Go, defer digunakan untuk menjadwalkan eksekusi suatu fungsi hingga segera sebelum fungsi tempatnya dideklarasikan selesai dieksekusi. Hal ini sering digunakan untuk menjalankan kode pembersihan atau menutup file setelah selesai digunakan. Mari kita lihat contoh penggunaan defer:
Meskipun pernyataan defer ditulis pertama kali, ia akan dieksekusi terakhir, setelah fungsi tempatnya dideklarasikan (main dalam kasus ini) selesai dieksekusi.
Sekarang, tentang scope di Go:
Scope mengacu pada area dalam kode di mana sebuah variabel dapat diakses. Di Go, variabel yang dideklarasikan di luar fungsi dapat diakses dari mana saja dalam paket yang sama. Variabel yang dideklarasikan di dalam sebuah fungsi hanya dapat diakses di dalam fungsi tersebut. Contoh:
packagemainimport"fmt"varglobalVar="Ini variabel global"funcmain(){localVar:="Ini variabel lokal"fmt.Println(globalVar)// Output: Ini variabel globalfmt.Println(localVar)// Output: Ini variabel lokalfungsiLain()}funcfungsiLain(){// fmt.Println(localVar) // Ini akan menyebabkan error karena localVar tidak dapat diakses di sinifmt.Println(globalVar)// Output: Ini variabel global}
Variabel globalVar dideklarasikan di luar fungsi main sehingga dapat diakses dari mana saja dalam paket. Sebaliknya, localVar dideklarasikan di dalam fungsi main, sehingga hanya dapat diakses di dalam fungsi tersebut. Jika Anda mencoba mengakses localVar di luar fungsi main atau di dalam fungsi lain, itu akan menyebabkan error.
Dengan memahami konsep defer dan scope, Anda dapat menulis kode Go yang lebih efisien, bersih, dan mudah dimengerti.
Di bab berikutnya akan dibahas tentang bagaimana membuat underscope di Golang