Golangda Erteleme Anahtar Kelimesi

Go'da, defer ifadeleri yakındaki fonksiyonlar dönene kadar bir fonksiyonun, metodun veya anonim bir metodun yürütülmesini geciktirir. Başka bir deyişle, erteleme işlevlerine veya yöntemlerine verilen argümanlar hemen değerlendirilir, ancak yakındaki işlevler dönene kadar yürütülmezler. Defer anahtar sözcüğünü kullanarak ertelenmiş bir yöntem, fonksiyon veya anonim fonksiyon oluşturabilirsiniz.

Golang'da Erteleme Anahtar Kelimesi

Sözdizimi:

// Hàm
defer func func_name(parameter_list Type)return_type{
// Code
}

// Phương thức
defer func (receiver Type) method_name(parameter_list){
// Code
}

defer func (parameter_list)(return_type){
// code
}()

Önemli Not:

  • Go dilinde aynı program içerisinde birden fazla defer ifadesine izin verilir ve bunlar Örnek 2'de gösterildiği gibi LIFO (Son Giren İlk Çıkar) sırasına göre yürütülür.
  • Erteleme ifadelerinde, argümanlar erteleme ifadesi çağrıldığında değil, yürütüldüğünde değerlendirilir.
  • Erteleme ifadeleri sıklıkla dosyaların ihtiyaç sona erdiğinde kapatılmasını sağlamak, kanalları kapatmak veya programdaki sorunları yakalamak için kullanılır.

Şimdi daha iyi anlamak için bir örneğe bakalım.

Örnek 1:

// Chương trình Go minh họa
// khái niệm của lệnh defer
package main

import "fmt"

// Các hàm
func mul(a1, a2 int) int {

	res := a1 * a2
	fmt.Println("Result: ", res)
	return 0
}

func show() {
	fmt.Println("Hello!, Quantrimang.com")
}

// Hàm chính
func main() {

	// Gọi hàm mul() 
	// Tại đây hàm mul hoạt động
	// như một hàm bình thường
	mul(23, 45)

	// Gọi hàm mul()
	// Dùng từ khóa defer 
	// Hàm the mul() 
	// là hàm defer
	defer mul(23, 56)

	// Gọi hàm show() 
	show()
}

Sonuç:

Result:  1035
Hello!, Quantrimang.com
Result:  1288

Açıklama: Yukarıdaki örnekte mul() ve show() adında iki fonksiyonumuz var . show () fonksiyonu normalde main() fonksiyonu içerisinde çağrılırken , mul() fonksiyonu iki farklı şekilde çağrılır:

  • Öncelikle mul fonksiyonunu normal şekilde (defer anahtar sözcüğü olmadan) çağırıyoruz, yani mul(23, 45) ve fonksiyon çağrıldığında o da çalışıyor (Çıktı: Sonuç: 1035).
  • İkinci olarak, mul() fonksiyonunu defer anahtar sözcüğünü kullanarak bir defer fonksiyonu olarak çağırıyoruz, yani defer mul(23, 56) ve çevredeki tüm metotlar döndüğünde (Çıktı: Sonuç: 1288) yürütülüyor.

Örnek 2:

// Minh họa chương trình Go
// dùng nhiều lệnh defer, để minh họa chính sách LIFO 
package main

import "fmt"

// Các hàm
func add(a1, a2 int) int {
	res := a1 + a2
	fmt.Println("Result: ", res)
	return 0
}

// Hàm chính
func main() {

	fmt.Println("Start")

	// Nhiều lệnh defer
	// Triển khai theo thứ tự LIFO 
	defer fmt.Println("End")
	defer add(34, 56)
	defer add(10, 10)
}

Sonuç:

Start
Result:  20
Result:  90
End

Yorum bırak

Kıyafetlerdeki yapıştırıcı kalıntılarını çıkarma: leke kalıcı hale gelmeden önce nazikçe hareket edin

Kıyafetlerdeki yapıştırıcı kalıntılarını çıkarma: leke kalıcı hale gelmeden önce nazikçe hareket edin

Kıyafetlerdeki yapıştırıcı kalıntılarını çıkarma: dikkatli sökmeden soğuk, sabunlu su ve leke çıkarıcıya, oradan yıkamaya kadar. Japon yapıştırıcısı, etiket kalıntıları ve hassas kumaşlar için ipuçlarıyla.

Bulaşık makinesi filtresi nasıl temizlenir: kalıntı ve kötü kokuları önlemek için basit rehber

Bulaşık makinesi filtresi nasıl temizlenir: kalıntı ve kötü kokuları önlemek için basit rehber

Bulaşık makinesi filtresini adım adım temizlemeyi öğrenin: çıkarma, durulama, fırçalama, yeniden takma, sıklık ve basit bir temizliğin artık yeterli olmadığının işaretleri.

Nemlendirici temizliğinde sitrik asit kullanılabilir mi? Yöntemlere göre dikkat edilmesi gerekenler ve güvenli adımlar örneklerle açıklanıyor

Nemlendirici temizliğinde sitrik asit kullanılabilir mi? Yöntemlere göre dikkat edilmesi gerekenler ve güvenli adımlar örneklerle açıklanıyor

Nemlendiricileri sitrik asit ile temizlerken konsantrasyon, bekletme, durulama ve yöntemlere göre dikkat edilmesi gerekenler üretici resmi bilgilerine dayanarak açıklanıyor. Örnek senaryolarla pratik adımlar anlaşılır şekilde sunuluyor.

Klima Filtresi Temizlenmezse Ne Olur? Elektrik Faturası, Verimlilik, Küf Riski ve Temizlik Sıklığı Seçimi

Klima Filtresi Temizlenmezse Ne Olur? Elektrik Faturası, Verimlilik, Küf Riski ve Temizlik Sıklığı Seçimi

Klima filtresi temizlenmediğinde elektrik faturalarında artış, ısıtma/soğutma verimliliğinde düşüş, koku ve küf oluşumu gibi sorunlar yaşanabilir. Üretici ve enerji tasarrufu bilgilerine dayanarak temizlik sıklığı, otomatik temizleme fonksiyonu ve profesyonel temizlik arasındaki dengeyi açıklıyoruz.

Sırt çantasını çamaşır makinesinde yıkamak: Ne zaman yapılabilir, ne zaman kaçınılmalı?

Sırt çantasını çamaşır makinesinde yıkamak: Ne zaman yapılabilir, ne zaman kaçınılmalı?

Sırt çantasının çamaşır makinesinde ne zaman yıkanabileceğini, bakım etiketinin nasıl okunacağını, program ve deterjan seçimini, askı ve fermuarların korunmasını ve el ile yıkamanın ne zaman tercih edilmesi gerektiğini keşfedin.

Microsoft Teams Lisans Hatası Giderme

Microsoft Teams Lisans Hatası Giderme

Microsoft Teams'te "Lisans Hatası" ile mi karşılaşıyorsunuz? Lisans sorunlarını hızlıca çözmek, erişimi geri yüklemek ve BT ekibiyle uğraşmadan verimliliği artırmak için bu adım adım sorun giderme kılavuzunu izleyin. En son düzeltmelerle güncellendi.

Microsoft Teams Ücretsiz Abonelik Hatası Nasıl Düzeltilir?

Microsoft Teams Ücretsiz Abonelik Hatası Nasıl Düzeltilir?

Microsoft Teams Ücretsiz Abonelik Hatası yüzünden toplantılarınızın aksamasından bıktınız mı? Sorunu hızlıca çözmek ve sorunsuz ekip çalışmasını yeniden sağlamak için kanıtlanmış, adım adım çözümleri keşfedin. En yeni sürümlerde çalışır!

Herkese Açık Wi-Fi Ağlarında Microsoft Teams Ağ Hatasını Çözme

Herkese Açık Wi-Fi Ağlarında Microsoft Teams Ağ Hatasını Çözme

Herkese açık Wi-Fi ağlarında Microsoft Teams ağ hatasıyla mı karşılaşıyorsunuz? Aramalarınızı ve toplantılarınızı sorunsuz bir şekilde geri yüklemek için VPN ayarları, port kontrolleri ve önbellek temizleme gibi anında çözümler bulun. Hızlı çözüm için adım adım kılavuz.

Microsoft Teams Wiki Sekmesinin Yüklenmeme Hatası Nasıl Düzeltilir?

Microsoft Teams Wiki Sekmesinin Yüklenmeme Hatası Nasıl Düzeltilir?

Microsoft Teams Wiki sekmesinin yüklenmemesi hatasıyla mı karşılaşıyorsunuz? Sorunu hızlıca çözmek, Wiki sekmelerinizi geri yüklemek ve ekip verimliliğini sorunsuz bir şekilde artırmak için kanıtlanmış adım adım çözümleri keşfedin.

Microsoft Teams Mac Hata Anahtar Zinciri Sorunlarını Giderme

Microsoft Teams Mac Hata Anahtar Zinciri Sorunlarını Giderme

Microsoft Teams Mac'te Anahtar Zinciri hatasıyla mı mücadele ediyorsunuz? Sorunsuz iş birliğine geri dönmek için macOS için kanıtlanmış, adım adım sorun giderme çözümlerini keşfedin. Hızlı çözümler içeride!