Latihan 1: Defer, Panic, Recover — Go

Latihan 1 dari materi Defer, Panic, Recover di Go — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Buat fungsi useResource() yang mensimulasikan cleanup dengan defer:

  1. Buat fungsi openResource(name string) yang cetak "buka: <name>" dan return name.
  2. Buat fungsi closeResource(name string) yang cetak "tutup: <name>".
  3. Di main():
    • Panggil openResource("file-A") dan simpan return-nya
    • defer panggilan ke closeResource untuk resource itu
    • Panggil openResource("file-B") dan defer closeResource-nya juga
    • Cetak "kerja..."

Perhatikan urutan output — defer LIFO akan menutup file-B dulu, baru file-A.

Output yang diharapkan (berurutan):

buka: file-A
buka: file-B
kerja...
tutup: file-B
tutup: file-A

Hint