Lebih Daripada Satu Watak dalam Rune Literal in Go
Soalan:
Seorang pengaturcara baharu sedang menghadapi ralat semasa cuba menentukan sama ada nombor itu ganjil atau genap. Mereka menerima ralat, "lebih daripada satu aksara dalam literal rune." Bolehkah anda menerangkan punca isu ini?
Jawapan:
Dalam Go, petikan tunggal digunakan untuk literal rune, yang mewakili aksara Unicode tunggal. Dalam kod yang disediakan, pengaturcara menggunakan petikan tunggal untuk penentu format dalam fungsi fmt.Printf, yang sebaliknya harus disertakan dalam petikan berganda. Berikut ialah kod yang diperbetulkan:
package main import "fmt" func main() { var a int fmt.Printf("Enter the number: ") fmt.Scanf("%d", &a) if a%2 == 0 { fmt.Println("%d Is even number", a) } else { fmt.Println("%d is odd number", a) } }
Penjelasan:
In Go, %d ialah penentu format yang digunakan untuk mencetak integer. Walau bagaimanapun, apabila petikan tunggal digunakan di sekelilingnya, Go mentafsirkannya sebagai literal rune. Memandangkan rune hanya boleh mewakili satu aksara, menggunakan %d dalam petikan tunggal adalah tidak betul.
Untuk menyelesaikan isu ini, petikan berganda mesti digunakan di sekitar penentu format untuk menunjukkan bahawa ia adalah rentetan literal, bukan rune literal. Literal rentetan boleh mengandungi berbilang aksara, termasuk penentu format.
Atas ialah kandungan terperinci Mengapakah saya mendapat ralat 'lebih daripada satu aksara dalam rune literal' semasa menyemak nombor ganjil atau genap dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!