Memahami Nilai Pemulangan Tangguh dan Dinamakan dalam Go
Dalam Go, penyataan penangguhan membenarkan fungsi melaksanakan kod selepas fungsi sekeliling kembali. Tingkah laku ini boleh digunakan untuk mengubah suai nilai pulangan yang dinamakan bagi fungsi sekeliling.
Pertimbangkan contoh berikut:
func c() (i int) { defer func() { i++ }() return 1 }
Fungsi ini mengembalikan 2, walaupun pernyataan pulangan 1 digunakan. Ini kerana penyataan penangguhan menolak panggilan fungsi ke tindanan, yang dilaksanakan serta-merta sebelum fungsi sekeliling kembali. Oleh itu, penyataan i dilaksanakan selepas penyataan pulangan 1, menambah nilai i kepada 2.
Memahami Pulangan Telanjang
Adalah penting untuk menjelaskan bahawa "telanjang return" dalam Go merujuk kepada pernyataan pulangan tanpa sebarang hujah. Dalam kes sedemikian, nilai pulangan yang dinamakan dikembalikan tanpa diberikan secara eksplisit.
func a() (i int) { i = 2 return }
Fungsi ini mengembalikan 2, kerana penyataan pulangan bogel mengembalikan nilai pulangan bernama i, yang telah ditetapkan sebelum ini kepada 2.
Menggabungkan Tangguh dan Pulangan Tidak Bogel
Dalam contoh fungsi c, pernyataan tangguh mengubah nilai pulangan yang dinamakan i selepas pernyataan pulangan 1 dilaksanakan. Ini secara berkesan bersamaan dengan kod berikut:
func c() (i int) { i = 1 defer func() { i++ }() }
Dalam kes ini, penyata pulangan masih mengembalikan 1, tetapi penyataan tangguh menambah nilai i sebelum fungsi kembali.
Atas ialah kandungan terperinci Bagaimanakah Penyata `tunda` dan Nilai Pulangan Dinamakan Berinteraksi dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!