Middle
რა წესით ხორციელდება დაგვიანებული ფუნქციები (defer) Go-ში?
sobes.tech AI
პასუხი AI-სგან
დაგვიანებული ფუნქციები შესრულდება მათი განსაზღვრის逆მხარით, ანუ LIFO (Last-In, First-Out).
package main
import "fmt"
func main() {
defer fmt.Println("პირველი") // განსაზღვრული ბოლოს
defer fmt.Println("მეორე") // განსაზღვრული წინამორბედით
defer fmt.Println("მესამე") // განსაზღვრული პირველით
}
შედეგად, როდესაც ამ კოდის შესრულება მოხდება, გამოჩნდება:
მესამე
მეორე
პირველი
როდესაც გამოვდივართ სქოპიდან (ფუნქციიდან), სადაც defer გამოაცხადა, გადადებული ფუნქციები იძახება обратით წესით. ეს სასარგებლოა რესურსების გათავისუფლების, ფაილების დახურვის, mutex-ების გასაღების და სხვა სუფთავების ოპერაციებისათვის.