Middle
Ի՞նչ է defer օպերատորը Go լեզվում։
sobes.tech AI
Պատասխան AI-ից
defer օպերատորը օգտագործվում է ֆունկցիա կամ մեթոդի հետաձգված կատարման համար: defer նշված ֆունկցիաները կամ մեթոդները կատարվում են հենց այն ֆունկցիայի ավարտից առաջ, որը դրանք պարունակում է:
defer-ի աշխատանքային սկզբունքները՝
- կատարվում է ներկայիս ֆունկցիայից դուրս գալու ժամանակ, լինի դա նորմալ կամ Panic-ով;
- միաժամանակ մի քանի
defer-ներ կատարվում են LIFO (Last-In, First-Out) կարգով; - օգտակար է ռեսուրսների մաքրման համար, օրինակ՝ ֆայլերի կամ ցանցային կապերի փակման համար:
Օգտագործման օրինակ՝
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("Ֆայլը բացվում է.")
file, err := os.Open("example.txt")
if err != nil {
// Հետամնա սխալի մշակումը
return
}
// Ֆայլի հետաձգված փակումը
defer file.Close()
defer fmt.Println("Ֆայլը փակվելու է.") // Այս defer-ը առաջինը կիրականացվի (LIFO)
fmt.Println("Ֆայլը մշակվում է...")
// Ավելին աշխատանք ֆայլի հետ
}
Ծրագիրը կտպի՝
Ֆայլը բացվում է.
Ֆայլը մշակվում է...
Ֆայլը փակվելու է.