Golang ialah bahasa pengaturcaraan yang ketat, dan mekanisme semakan jenis statiknya boleh menjadikan kita lebih yakin dan selamat semasa menulis kod. Walau bagaimanapun, dalam amalan, kadangkala kami menghadapi beberapa mesej ralat yang tidak dapat difahami, termasuk ralat "hilang pulangan...". Sebab ralat ini agak mudah, iaitu, terdapat beberapa cabang dalam badan fungsi yang tidak mempunyai nilai pulangan Jadi bagaimana kita harus menyelesaikan ralat ini?
Di Golang, fungsi kita mesti mengembalikan jenis tertentu. Jika fungsi mentakrifkan jenis pulangan, fungsi mesti memastikan bahawa terdapat nilai pulangan dalam setiap laluan. Jika anda tidak pasti bahawa setiap laluan akan mengembalikan nilai, anda perlu menukar aliran fungsi atau menambah pernyataan pulangan di bawah syarat tertentu. Berikut adalah beberapa cara untuk menyelesaikan ralat ini:
Cara paling mudah ialah menambah penyata pulangan bagi setiap cawangan yang perlu dikembalikan. Sebagai contoh, berikut ialah contoh fungsi:
func divide(x, y int) float64 { if y == 0 { return 0.0 } return float64(x) / float64(y) }
Fungsi ini menerima dua parameter integer dan mengembalikan nombor titik terapung. Jika hujah kedua adalah sifar, 0.0 dikembalikan. Jika tidak, hasil bagi x dan y dikembalikan. Cawangan pertama fungsi ini sudah mempunyai pernyataan pulangan, tetapi cawangan kedua tiada satu. Jadi kita perlu menambah penyata pulangan di cawangan kedua untuk menyelesaikan ralat.
func divide(x, y int) float64 { if y == 0 { return 0.0 } return float64(x) / float64(y) }
Jika anda mempunyai banyak cawangan dalam fungsi, menambah penyata pulangan untuk setiap cawangan boleh menjadi menyusahkan. Dalam kes ini, kita boleh menambah penyata pulangan lalai untuk mengendalikan cawangan tanpa nilai pulangan. Contohnya:
func divide(x, y int) float64 { if y == 0 { return 0.0 } if x < y { return 0.0 } return float64(x) / float64(y) }
Dalam contoh di atas, jika x kurang daripada y, maka 0.0 dikembalikan, jika tidak cawangan ketiga dilaksanakan dan nilai yang betul dikembalikan.
Kadangkala, sesetengah cawangan dalam fungsi mesti menyebabkan ralat, seperti parameter input tidak memenuhi keperluan. Dalam kes ini, kita harus menambah pernyataan panik untuk menghentikan pelaksanaan program dan melaporkan ralat. Contohnya:
func divide(x, y int) float64 { if y == 0 { panic("分母不能为零") } return float64(x) / float64(y) }
Dalam contoh di atas, jika penyebutnya adalah sifar, fungsi akan mengeluarkan panik dan berhenti melaksanakan atur cara.
Ringkasan
Di Golang, fungsi mesti memastikan setiap laluan mempunyai nilai pulangan Jika tidak, kita perlu menambah pernyataan pulangan lalai atau menukar aliran badan fungsi. Jika keadaan tertentu menghalang pelaksanaan fungsi, kita perlu menambah kenyataan panik untuk melaporkan ralat. Melalui kaedah ini, kami boleh mengelakkan ralat "missing return..." dan memastikan kestabilan dan kebolehpercayaan kod kami.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan ralat 'missing return...' dalam golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!