Sobes.tech
Junior — Middle

რა არის defer ოპერატორის როლი Go ენაში და რა სარგებელი აქვს მას?

sobes.tech AI

პასუხი AI-სგან

Go ენის defer ოპერატორი გამოიყენება ფუნქციის დასრულებამდე დაგვიანებით ფუნქციის შესრულებისთვის (საერთოდ რესურსების გათავისუფლების ან საბოლოო მოქმედებების შესასრულებლად).

defer-ის უპირატესობები:

  • უზრუნველყოფს კოდის შესრულებას ფუნქციის ბოლოს, אפילו თუ ფუნქცია დასრულდება შეცდომით ან პანიკით.
  • აუმჯობესებს კოდის წაკითხვას, საშუალებას აძლევს რესურსების გათავისუფლებას მათი განაწილების გვერდით.
  • ხელს უშლის სუფთა კოდის დუბლირებას ფუნქციის სხვადასხვა ადგილას.

მაგალითი:

func readFile() error {
    file, err := os.Open("file.txt")
    if err != nil {
        return err
    }
    defer file.Close() // ფაილი დაიხურება ფუნქციის დასრულებისას

    // მუშაობა ფაილთან
    return nil
}

აქ, file.Close() ავტომატურად გამოიძახება readFile-დან გამოსვლისას, независимо როგორ დასრულდება ფუნქცია.