35 / 103

Stacking defers

Defer'larni to'plash

Kechiktirilgan funksiya chaqiruvlari stekka (stack) joylanadi. Funksiya qaytganda, uning kechiktirilgan chaqiruvlari oxirgi kirgan — birinchi chiqadi (last-in-first-out) tartibida bajariladi.

defer operatorlari haqida ko'proq bilish uchun ushbu blog postini o'qing.

Topshiriqlar

Yechimni kodning pastki qismidagi Topshiriqlar bo'limiga yozing, so'ng Submit tugmasini bosing. Mavzu mustahkam o'zlashishi uchun ikkala topshiriqni ham bajaring.

1-topshiriq

Kodda jurnal va yoz(s string) tayyor. teskariUch(a, b, c string) funksiyasini yozing: defer yoz(a), defer yoz(b), defer yoz(c) ni shu tartibda chaqirsin. Kechiktirilgan chaqiruvlar stekda teskari tartibda bajarilgani uchun, teskariUch("a", "b", "c") dan keyin jurnal "cba" bo'ladi.

2-topshiriq

teskari(n int) funksiyasini yozing: for siklida i ni 0 dan n-1 gacha yurib, har biri uchun defer yoz(fmt.Sprint(i)) ni chaqirsin. Funksiya tugagach jurnal teskari tartibda bo'ladi: teskari(3) — "210", teskari(0) — bo'sh satr.