Cara membetulkan ralat golang: operasi tidak sah: 'x' (operator 'y') 'z' (jenis T dan U tidak sepadan)
Apabila pengaturcaraan dengan golang, kita sering menghadapi pelbagai kesilapan. Salah satu ralat biasa ialah "operasi tidak sah: 'x' (pengendali 'y') 'z' (jenis T dan U tidak sepadan)". Ralat ini biasanya berlaku apabila kami cuba menggunakan operator antara jenis data yang tidak serasi.
Untuk lebih memahami masalah ini, mari lihat beberapa contoh kod:
Contoh 1:
package main import "fmt" func main() { var x int = 5 var y string = "hello" result := x + y fmt.Println(result) }
Kod ini cuba menambah integer dan rentetan dan kemudian menyimpan hasilnya dalam pembolehubah. Walau bagaimanapun, memandangkan jenis integer dan jenis rentetan tidak serasi, pengkompil akan melaporkan ralat: "operasi tidak sah: x + y (jenis tidak sepadan int dan rentetan)".
Untuk membetulkan ralat ini, kami perlu memastikan bahawa pengendali harus sesuai dengan jenis data yang kami kendalikan. Dalam contoh ini, kita perlu menukar integer kepada rentetan dan kemudian melakukan operasi penggabungan rentetan. Kod tetap kelihatan seperti ini:
package main import "fmt" func main() { var x int = 5 var y string = "hello" result := fmt.Sprintf("%d%s", x, y) fmt.Println(result) }
Contoh 2:
package main import "fmt" type Employee struct { name string age int } func main() { var x Employee = Employee{name: "John", age: 30} var y string = "30" result := x.age + y fmt.Println(result) }
Dalam contoh di atas, kami cuba menambah integer dan rentetan dan kemudian menyimpan hasilnya dalam pembolehubah. Walau bagaimanapun, memandangkan jenis integer dan jenis rentetan tidak serasi, pengkompil akan melaporkan ralat: "operasi tidak sah: x.age + y (jenis tidak sepadan int dan rentetan)".
Untuk membetulkan ralat ini, kita perlu menukar integer kepada rentetan, dan kemudian melakukan operasi penggabungan rentetan. Kod tetap kelihatan seperti ini:
package main import "fmt" type Employee struct { name string age int } func main() { var x Employee = Employee{name: "John", age: 30} var y string = "30" result := fmt.Sprintf("%d%s", x.age, y) fmt.Println(result) }
Melalui dua contoh di atas, kita dapat melihat bahawa cara biasa untuk membetulkan ralat ini ialah menggunakan fungsi yang sesuai untuk menukar jenis data sebelum memanipulasinya. Di sini, kami telah menggunakan fungsi fmt.Sprintf
untuk menukar integer kepada rentetan.
Ringkasnya, apabila menghadapi ralat golang "operasi tidak sah: 'x' (pengendali 'y') 'z' (jenis T dan U yang tidak sepadan)", kita harus menyemak sama ada jenis data antara operator dan operan adalah padan . Jika ia tidak sepadan, kita perlu menggunakan fungsi yang sesuai untuk menukar jenis data untuk melaksanakan operasi yang sepadan. Harap artikel ini dapat membantu anda membetulkan ralat ini dengan lebih baik dan meningkatkan keupayaan anda untuk menulis kod golang.
Atas ialah kandungan terperinci Cara membetulkan ralat golang: operasi tidak sah: 'x' (pengendali 'y') 'z' (jenis T dan U tidak sepadan). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!