Penggunaan penangguhan dalam Go
Kata kunci tangguh dalam Go membolehkan anda melaksanakan fungsi sejurus sebelum fungsi sekeliling kembali, memastikan tindakan diambil walaupun dalam keadaan panik.
Faedah penangguhan Atas Kod Diletakkan di Fungsi Tamat
Contoh:
Cuba-akhirnya Sumber Pembersihan:
func main() { f, err := os.Create("file") if err != nil { panic("cannot create file") } defer f.Close() fmt.Fprintf(f, "hello") }
Cuba-tangkap-akhirnya dengan Pengendalian Panik:
func main() { defer func() { msg := recover() fmt.Println(msg) }() f, err := os.Create(".") // . is the current directory if err != nil { panic("cannot create file") } defer f.Close() fmt.Fprintf(f, "hello") }
Pemulangan yang Diubah Suai Nilai:
func yes() (text string) { defer func() { text = "no" }() return "yes" } func main() { fmt.Println(yes()) // Prints "no" }
Ringkasnya, tangguh dalam Go menyediakan cara yang fleksibel untuk memastikan pembersihan sumber, mengendalikan panik dan mengawal perintah pelaksanaan tanpa memerlukan struktur blok bersarang.
Atas ialah kandungan terperinci Bagaimanakah Kata Kunci `menangguhkan` Go Memudahkan Pengurusan Sumber dan Pengendalian Panik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!