Maison > développement back-end > Golang > Comment surcharger les opérateurs pour les types personnalisés dans Golang ?

Comment surcharger les opérateurs pour les types personnalisés dans Golang ?

WBOY
Libérer: 2024-06-02 09:26:57
original
722 Les gens l'ont consulté

Dans Go, vous pouvez personnaliser les types en surchargeant les opérateurs en créant une méthode avec le même nom pour le type, en recevant une autre instance de type et en renvoyant le même type de résultat. De cette façon, les opérateurs personnalisés peuvent être utilisés tout comme les opérateurs intégrés, facilitant ainsi l'utilisation et la lisibilité du code.

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

Comment surcharger les opérateurs pour personnaliser les types dans Go

Dans Go, des types personnalisés sont parfois nécessaires pour répondre aux besoins du projet. Afin de rendre le code plus facile à utiliser et à lire, vous pouvez envisager de surcharger les opérateurs pour personnaliser les types.

Grammar

La syntaxe des opérateurs surchargés dans Go est la suivante :

func (t *Type) Operator(otherOperand Type) Type
Copier après la connexion

Opérateur est l'opérateur à surcharger, tel que +, -, ==, etc. t et otherOperand sont deux opérandes, qui sont tous deux des instances du type Type. Le type de retour doit également être de type Type. 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,
    }
}
Copier après la connexion

使用重载的运算符

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

Surcharge de méthode

🎜🎜Pour surcharger un opérateur, vous devez créer une méthode qui reçoit une autre instance de Type et renvoie un résultat de type Type. Le nom de la méthode doit être le même que celui de l'opérateur surchargé. 🎜🎜🎜Cas pratique🎜🎜🎜Supposons que nous ayons un type Vector et que nous devions surcharger l'opérateur + pour ajouter deux vecteurs. Nous pouvons définir la méthode suivante : 🎜
v1 := Vector{1, 2, 3}
v2 := Vector{4, 5, 6}
v3 := v1.Add(v2) // 使用重载的 + 运算符
fmt.Println(v3) // 输出:{5 7 9}
Copier après la connexion
🎜🎜Utiliser des opérateurs surchargés🎜🎜🎜Après avoir surchargé l'opérateur +, vous pouvez l'utiliser comme les opérateurs intégrés. Par exemple, deux instances Vector peuvent être ajoutées : 🎜rrreee🎜En surchargeant les opérateurs, vous pouvez personnaliser le comportement d'un type, le rendant plus facile à utiliser et à comprendre. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal