Rumah > pembangunan bahagian belakang > Golang > Cara membetulkan ralat golang: operasi tidak sah: 'x' (pengendali 'y') 'z' (jenis T dan U tidak sepadan)

Cara membetulkan ralat golang: operasi tidak sah: 'x' (pengendali 'y') 'z' (jenis T dan U tidak sepadan)

PHPz
Lepaskan: 2023-08-18 22:35:07
asal
1074 orang telah melayarinya

如何修复golang报错:invalid operation: 'x' (operator 'y') 'z' (mismatched types T and U)

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)
}
Salin selepas log masuk

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)
}
Salin selepas log masuk

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)
}
Salin selepas log masuk

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)
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan