Middle
Go'da ertelemeli fonksiyonlar (defer) hangi sırayla çalıştırılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Erteleme fonksiyonlar, tanımlandıkları sıranın tersine, yani LIFO (Last-In, First-Out) sırasına göre çalıştırılır.
package main
import "fmt"
func main() {
defer fmt.Println("birinci") // Son tanımlanan
defer fmt.Println("ikinci") // Bir önceki tanımlanan
defer fmt.Println("üçüncü") // İlk tanımlanan
}
Bu kodun çalıştırılması sonucunda şu çıktı alınır:
üçüncü
ikinci
birinci
defer ile tanımlanan fonksiyonlar, fonksiyon bloğundan çıkarken ters sırayla çağrılır. Bu, kaynakları serbest bırakmak, dosyaları kapatmak, mutexleri çözmek ve diğer temizlik işlemleri için faydalıdır.