Latihan 1 dari materi Defer, Panic, Recover di Go — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Kode awal sudah punya openResource (mencetak buka: <nama> lalu mengembalikan namanya), closeResource (mencetak tutup: <nama>), dan main yang membuka file-A lalu menjadwalkan penutupannya dengan defer closeResource(a). Biarkan semuanya.
Di main, di bawah defer closeResource(a), buka sumber daya kedua: b := openResource("file-B").
Tepat di bawahnya, jadwalkan penutupannya: defer closeResource(b).
Biarkan fmt.Println("kerja...") tetap jadi baris terakhir main.
Output harus persis lima baris ini, dengan urutan ini:
Yang dicek: kelima baris itu dan urutannya, ada dua defer (atau satu defer di dalam for), dan teks buka: serta tutup: dicetak dari dalam openResource dan closeResource, bukan dari main.
Hint
defer baru jalan saat main selesai, dan yang dipasang terakhir jalan pertama. Jadi file yang dibuka terakhir ditutup paling dulu.
Ulangi pola file-A untuk file-B: simpan hasil openResource("file-B") di variabel b, lalu defer closeResource(b), semuanya sebelum baris kerja....
a := openResource("file-A"); defer closeResource(a); b := openResource("file-B"); defer closeResource(b); fmt.Println("kerja...")
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...