Petikan Rentetan dalam Golang
Dalam Golang, rentetan yang menggunakan petikan tunggal mewakili satu aksara atau rune, bukan rentetan. Percubaan untuk menetapkan rentetan kepada pembolehubah petikan tunggal akan mengakibatkan ralat kerana ia melanggar peraturan jenis bahasa.
Watak Tunggal lwn. Rentetan
A petikan tunggal melampirkan rune, yang merupakan titik kod Unicode tunggal. Contohnya:
a := 'a' // represents the rune 'a'
Sebaliknya, petikan berganda melampirkan rentetan, yang merupakan urutan sifar atau lebih rune.
a := "hello" // represents the string "hello"
Mesej Ralat
Mesej ralat yang anda terima menunjukkan bahawa anda sedang cuba untuk menetapkan rentetan (disertakan dalam petikan tunggal) kepada pembolehubah daripada jenis rentetan. Golang menafsirkan nilai petikan tunggal sebagai rune dan mengadu tentang ketidakpadanan jenis.
Pada sesetengah sistem, anda mungkin melihat ralat "harfiah rune haram", yang bermaksud petikan tunggal itu bukan literal rune yang sah . Di taman permainan Go, anda mungkin melihat satu siri ralat sintaks yang berkaitan dengan penggunaan petikan tunggal.
Perbandingan dengan Bahasa Lain
Tidak seperti Python dan Perl, Golang membezakan antara aksara dan rentetan. Perbezaan ini adalah perlu kerana Golang menyokong Unicode, yang boleh mewakili pelbagai aksara menggunakan berbilang titik kod.
Mata Kod dan Rune
Di Golang, rune ialah integer mewakili titik kod Unicode. Rentetan terdiri daripada rune. Sebagai contoh, rentetan "hello" diwakili sebagai urutan rune berikut:
[]rune{0x68, 0x65, 0x6c, 0x6c, 0x6f}
Setiap rune sepadan dengan aksara Unicode tertentu. Bahagian "Mata kod, aksara dan rune" pada Go Blog on Strings memberikan butiran lanjut tentang topik ini.
Atas ialah kandungan terperinci Mengapakah Menggunakan Petikan Tunggal untuk Rentetan Menyebabkan Ralat dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!