Mengapa Pulangan Normal Menyembunyikan Panik vs Pulangan Dinamakan
Senario yang disediakan menunjukkan tingkah laku yang tidak dijangka di mana NormalReturns() mengembalikan sifar walaupun berlakunya panik, manakala NamedReturns() mengendalikan panik dengan betul dan memberikan ralat bukan nol. Tingkah laku ini berpunca daripada sifat pulangan yang dinamakan dalam Go.
Pulangan Dinamakan
Jika nilai pulangan dinamakan, ia adalah pembolehubah tempatan secara berkesan yang boleh diubah suai dalam fungsi . Kenyataan pulangan pada dasarnya adalah tugasan kepada pembolehubah tempatan ini. Sekiranya panik, masa jalan Go membenarkan fungsi tertunda untuk dilaksanakan sebelum menamatkan program. Fungsi tertunda ini boleh mengakses dan mengubah suai pembolehubah pulangan yang dinamakan.
Dalam NamedReturns(), fungsi tangkapan tertunda() mengubah suai pembolehubah hasil ralat untuk menetapkan mesej ralat apabila panik berlaku. Oleh kerana ini berlaku sebelum fungsi kembali, nilai ralat yang diubah suai dikembalikan dan bukannya sifar.
Pulangan Normal
Sebaliknya, dalam NormalReturns(), pulangan nilai dimulakan kepada sifar dan kekal sedemikian kerana kenyataan pemulangan tidak dicapai sebelum panik. Ralat pembolehubah tempatan, walaupun nilainya diubah suai dalam fungsi tertunda, tidak mempunyai kesan ke atas nilai pulangan.
Perbezaan Utama
Oleh itu, perbezaan utama antara yang dinamakan pulangan dan pulangan biasa dalam senario ini terletak pada keupayaan mereka untuk mengubah suai nilai pulangan sekiranya berlaku panik. Pulangan bernama membenarkan fungsi tertunda untuk mengemas kini nilai ini, memberikan lebih fleksibiliti dalam mengendalikan pengecualian. Pulangan biasa, walau bagaimanapun, tidak dapat mengembalikan nilai bukan nol kerana kekurangan pernyataan pulangan yang jelas sebelum berlakunya panik.
Atas ialah kandungan terperinci Mengapa Pemulangan Dinamakan Mengendalikan Panik Berbeza Daripada Pulangan Biasa dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!