Bagaimana untuk membebankan operator untuk jenis tersuai di Golang?

WBOY
Lepaskan: 2024-06-02 09:26:57
asal
701 orang telah melayarinya

Dalam Go, anda boleh menyesuaikan jenis dengan melebihkan operator dengan mencipta kaedah dengan nama yang sama untuk jenis, menerima contoh jenis lain dan mengembalikan jenis hasil yang sama. Dengan cara ini, pengendali tersuai boleh digunakan sama seperti operator terbina dalam, sekali gus memudahkan penggunaan kod dan kebolehbacaan.

如何在 Golang 中重载运算符以自定义类型?

Cara melebihkan operator untuk menyesuaikan jenis dalam Go

Dalam Go, kadangkala jenis tersuai diperlukan untuk memenuhi keperluan projek. Untuk menjadikan kod lebih mudah digunakan dan boleh dibaca, anda boleh mempertimbangkan pengendali terlebih muatan untuk menyesuaikan jenis.

Tatabahasa

Sintaks operator terlampau beban dalam Go adalah seperti berikut:

func (t *Type) Operator(otherOperand Type) Type
Salin selepas log masuk

di mana Operator ialah operator yang akan dibebankan, seperti +, -, ==, dsb. t dan otherOperand ialah dua operan, kedua-duanya adalah contoh jenis Type. Jenis pemulangan juga mestilah daripada jenis Jenis. . Nama kaedah mestilah sama dengan operator yang terlebih beban. Operator 是要重载的运算符,如 +-== 等。totherOperand 是两个操作数,它们都是 Type 类型的实例。返回类型也必须是 Type 类型。

方法重载

要重载一个运算符,需要创建一个方法,该方法接收另一个 Type 实例并返回 Type 类型的结果。该方法的名称必须与要重载的运算符相同。

实战案例

假设我们有一个 Vector 类型,需要重载 + 运算符来实现两个向量的加法。我们可以定义如下方法:

type Vector struct {
    X float64
    Y float64
    Z float64
}

func (v Vector) Add(other Vector) Vector {
    return Vector{
        X: v.X + other.X,
        Y: v.Y + other.Y,
        Z: v.Z + other.Z,
    }
}
Salin selepas log masuk

使用重载的运算符

重载了 + 运算符后,可以像使用内置运算符一样使用它。例如,可以将两个 Vector

Kes praktikal

🎜🎜Andaikan kita mempunyai jenis Vector dan perlu membebankan operator + untuk menambah dua vektor. Kami boleh mentakrifkan kaedah berikut: 🎜
v1 := Vector{1, 2, 3}
v2 := Vector{4, 5, 6}
v3 := v1.Add(v2) // 使用重载的 + 运算符
fmt.Println(v3) // 输出:{5 7 9}
Salin selepas log masuk
🎜🎜Menggunakan operator terlampau beban🎜🎜🎜Selepas melebihkan operator +, anda boleh menggunakannya sama seperti operator terbina dalam. Sebagai contoh, dua contoh Vektor boleh ditambah: 🎜rrreee🎜Dengan lebih muatan operator, anda boleh menyesuaikan gelagat sesuatu jenis, menjadikannya lebih mudah untuk digunakan dan difahami. 🎜

Atas ialah kandungan terperinci Bagaimana untuk membebankan operator untuk jenis tersuai di Golang?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!