Sobes.tech
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.