"digunakan sebagai nilai" dalam Panggilan Fungsi
Dalam Go, fungsi boleh digunakan untuk menilai nilainya, yang boleh digunakan dalam keadaan bersyarat kenyataan. Walau bagaimanapun, apabila menilai nilai fungsi, adalah penting untuk memastikan pengisytiharan dan penyebutan fungsi yang betul.
Dalam coretan kod yang disediakan:
if sumThis(1,2) > sumThis(3,4){ fmt.Println("test") } else { fmt.Println("derp") }
Jumlah fungsi ini digunakan beberapa kali untuk mengira nilainya. Walau bagaimanapun, mesej ralat menunjukkan bahawa sumThis adalah "digunakan sebagai nilai", yang bermaksud panggilan fungsi cuba untuk menetapkan hasil panggilan fungsi kepada pembolehubah tanpa menyatakan jenis pemulangan.
Untuk menyelesaikan masalah ini, anda perlu mengisytiharkan jenis pulangan untuk fungsi sumThis. Dalam Go, fungsi mesti mengisytiharkan jenis pemulangannya secara eksplisit. Fungsi hendaklah diisytiharkan seperti berikut:
func sumThis(a, b int) int { return a + b }
Dengan menyatakan jenis pulangan sebagai int, fungsi akan mengembalikan hasil pengiraan. Kini, kod akan disusun dan dijalankan dengan jayanya, mencetak sama ada "ujian" atau "derp" bergantung pada keputusan panggilan fungsi.
Atas ialah kandungan terperinci Mengapa Panggilan Fungsi Go Saya Mengakibatkan Ralat 'Digunakan Sebagai Nilai'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!