Dalam Go, kata kunci tangguh memainkan peranan penting dalam mengawal susunan pelaksanaan fungsi dan penilaian parameter. Ia memastikan bahawa tugasan tertentu dilakukan serta-merta sebelum fungsi lampiran kembali, tanpa mengira aliran pelaksanaan biasa.
Tidak seperti panggilan fungsi biasa, fungsi tertunda dinilai dan disimpan apabila kenyataan tangguh ditemui. Pelaksanaan sebenar mereka, bagaimanapun, ditangguhkan sehingga fungsi lampiran kembali. Ini membolehkan tindakan khusus dilaksanakan selepas fungsi utama menyelesaikan operasi utamanya.
Sebagai contoh, pertimbangkan coretan kod berikut:
<code class="go">defer fmt.Println("...order is 4...Your age is:", getAge(&age)) defer fmt.Println("...order is 3...Your ticket price is:", printTicket(age))</code>
Dalam kod ini, pernyataan fmt.Println ditangguhkan dan parameternya dinilai serta-merta. Walau bagaimanapun, pencetakan sebenar hanya akan berlaku apabila fungsi utama kembali. Selain itu, susunan pelaksanaan diterbalikkan, dengan penyataan tertunda terakhir dilaksanakan dahulu.
Untuk menggambarkan lebih lanjut proses penangguhan, mari kita laksanakan kod berikut:
<code class="go">func having() func(string) { fmt.Print("Go ") // evaluation order: 1 return funWithGo } func fun(msg string) string { fmt.Print("have ") // evaluation order: 2 return msg } func funWithGo(msg string) { fmt.Println("fun", msg) // evaluation order: 4 }</code>
Output:
Go have some fun with Go.
Dalam contoh ini, kita melihat proses pelaksanaan langkah demi langkah:
Adalah penting untuk ambil perhatian bahawa parameter fungsi tertunda dinilai apabila pernyataan penangguhan ditemui, bukan apabila fungsi itu benar-benar dilaksanakan. Ini boleh membawa kepada tingkah laku yang tidak dijangka jika parameter diubah suai sebelum fungsi tertunda dipanggil.
Menggunakan penangguhan boleh memberi manfaat dalam pelbagai senario, seperti:
Memahami menangguhkan perintah penilaian kata kunci dan pengendalian parameter adalah penting untuk menggunakannya secara berkesan dalam program Go. Dengan menerima ciri hebat ini, pembangun boleh meningkatkan keteguhan, organisasi dan kebolehselenggaraan kod mereka.
Atas ialah kandungan terperinci Bagaimana Penangguhan Berfungsi dalam Go: Memahami Penilaian Fungsi dan Pengendalian Parameter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!