Golang ialah bahasa pengaturcaraan moden yang gaya reka bentuknya yang ringkas dan cekap sangat dipuji oleh pembangun. Di Golang, kata kunci tangguh fungsi ialah ciri yang sangat berguna, yang boleh membantu kami membersihkan beberapa sumber sebelum fungsi itu kembali. Bukan itu sahaja, penangguhan juga boleh memainkan peranan yang besar dalam pengendalian pengecualian.
Apakah kata kunci tangguh?
Di Golang, kata kunci tangguh digunakan untuk menangguhkan pelaksanaan fungsi, iaitu, melaksanakannya pada penghujung fungsi. Ringkasnya, ia memberitahu pengkompil Golang: "Tidak kira kejayaan atau kegagalan pelaksanaan fungsi ini, pernyataan ini mesti dilaksanakan pada penghujung fungsi
Kaedah pelaksanaan khusus adalah untuk gunakan kata kunci tangguh diikuti dengan panggilan fungsi , contohnya:
func readFile() { file, err := os.Open("filename.txt") if err != nil { log.Fatal(err) } defer file.Close() // 最后关闭文件 // 读取文件内容 ... }
Dalam kod di atas, kami menggunakan kata kunci tangguh untuk menutup fail Tidak kira sama ada fail dibaca dengan jayanya atau tidak, pernyataan ini akan menjadi dilaksanakan pada akhirnya. Ini mengelakkan masalah dengan terlupa menutup fail dan kebocoran sumber lain.
Aplikasi penangguhan dalam pengendalian pengecualian
Di Golang, pengendalian pengecualian menggunakan fungsi panik dan memulihkan. Apa yang dipanggil panik merujuk kepada pengecualian yang dilemparkan secara aktif oleh program, dan pulih digunakan untuk menangkap dan mengendalikan pengecualian ini. Apabila menangani panik, kata kunci tangguh boleh membantu kami melakukan beberapa kerja pembersihan yang diperlukan, seperti menutup fail yang dibuka, melepaskan memori yang diminta, dsb.
Dalam kod contoh berikut, kami mensimulasikan pengecualian dalam fungsi membaca fail:
func readFile() { file, err := os.Open("filename.txt") if err != nil { log.Fatal(err) } defer file.Close() // 最后关闭文件 // 读取文件内容 _, err = file.Read(buf) if err != nil { panic(err) } }
Dalam kod di atas, jika pengecualian berlaku semasa membaca fail, fungsi panik akan dipanggil ke lempar Pengecualian berlaku dan pernyataan tangguh tidak akan dilaksanakan. Walau bagaimanapun, jika kami menggunakan fungsi pulih untuk pengendalian pengecualian dalam pernyataan tangguh, kami boleh melakukan kerja pembersihan yang diperlukan apabila program ranap:
func readFile() { file, err := os.Open("filename.txt") if err != nil { log.Fatal(err) } defer func() { if r := recover(); r != nil { fmt.Println("程序崩溃了,错误信息为:", r) file.Close() // 进行清理工作 } }() // 读取文件内容 _, err = file.Read(buf) if err != nil { panic(err) } }
Dalam kod di atas, kami menggunakan fungsi tanpa nama untuk melaksanakan kenyataan tangguh. Apabila pernyataan tangguh dilaksanakan, jika program ranap atau pengecualian berlaku, fungsi tanpa nama akan dipanggil untuk mengendalikan pengecualian dan melaksanakan kerja pembersihan yang diperlukan. Fungsi pulih digunakan dalam fungsi tanpa nama ini untuk menangkap maklumat pengecualian dan kemudian mengendalikannya.
Perlu diingatkan bahawa apabila menggunakan penangguhan untuk pengendalian pengecualian, kita perlu meletakkannya pada permulaan fungsi sebanyak mungkin untuk memastikan kerja pembersihan sumber yang diperlukan telah dilakukan sebelum program ranap.
Ringkasan
Di Golang, kata kunci tangguh fungsi boleh membantu kami melaksanakan kerja pembersihan sumber yang diperlukan, dan ia juga boleh memainkan peranan besar dalam pengendalian pengecualian. Menggunakan penangguhan boleh mengelakkan masalah terlupa untuk melepaskan sumber Pada masa yang sama, ia juga menjadikan pengendalian pengecualian lebih mudah dan lebih cekap. Sama ada dalam panggilan fungsi biasa atau pengendalian pengecualian, tangguh ialah ciri yang sangat berguna, dan pembangun mesti memanfaatkannya sepenuhnya.
Atas ialah kandungan terperinci Aplikasi kata kunci tangguh fungsi Golang dalam pengendalian pengecualian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!