Middle
Kas ir defer operators Go valodā?
sobes.tech AI
Atbilde no AI
defer operators tiek izmantots funkcijas vai metodes atliktai izpildei. Funkcijas, kas marķētas ar defer, tiek izpildītas tieši pirms to funkciju iziešanas.
defer darbības principi:
- Tiek izpildīts, iznākot no pašreizējās funkcijas, neatkarīgi no tā, vai tas ir normāls iziešanas veids vai panika.
- Vairāki
defervienā funkcijā tiek izpildīti LIFO (Last-In, First-Out) secībā. - Noderīgs resursu tīrīšanai, piemēram, failu vai tīkla savienojumu aizvēršanai.
Piemērs:
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("Atveram failu.")
file, err := os.Open("example.txt")
if err != nil {
// Kļūdas apstrāde
return
}
// Aizkavēta faila aizvēršana
defer file.Close()
defer fmt.Println("Fails tiks aizvērts.") // Šis `defer` tiks izpildīts pirmais (LIFO)
fmt.Println("Apstrādā failu...")
// Papildu darbs ar failu
}
Programmas izvade:
Atveram failu.
Apstrādā failu...
Fails tiks aizvērts.