Maison > développement back-end > Golang > Comment utiliser l'interface Golang

Comment utiliser l'interface Golang

PHPz
Libérer: 2023-04-24 10:32:49
original
610 Les gens l'ont consulté

Dans Golang, une interface (Interface) est un type qui définit l'ensemble de méthodes qu'un objet doit avoir. L'utilisation d'interfaces nous permet de décrire des objets de manière abstraite sans nous soucier de l'implémentation spécifique de l'objet.

Le format de déclaration de l'interface est le suivant :

type interface name interface {

方法1(参数1 类型1, 参数2 类型2, ...) (返回值1 类型1, 返回值2 类型2, ...)
方法2(参数1 类型1, 参数2 类型2, ...) (返回值1 类型1, 返回值2 类型2, ...)
...
Copier après la connexion

}

où le nom de l'interface peut être n'importe quel identifiant légal ; la méthode peut avoir zéro ou plusieurs paramètres et zéro ou plusieurs valeurs de retour, et les types de paramètres et de valeurs de retour peuvent être de n'importe quel type, y compris les types d'interface.

Voici un exemple simple qui montre comment définir une interface et l'utiliser pour décrire deux types différents :

package main

import "fmt"

// Définir l'interface
type Shape interface {

Area() float64
Copier après la connexion

}

// Définir la structure Circle
type Circle struct {

X, Y, Radius float64
Copier après la connexion

}

// Définir la méthode Area() pour implémenter l'interface Shape
func (c Circle) Area() float64 {

return 3.14 * c.Radius * c.Radius
Copier après la connexion

}

/ / Définir la structure Rectangle
type Rectangle struct {

X1, Y1, X2, Y2 float64
Copier après la connexion

}

// Définir la méthode Area() pour implémenter l'interface Shape
func (r Rectangle) Area() float64 {

return (r.X2 - r.X1) * (r.Y2 - r.Y1)
Copier après la connexion

}

// Définir la fonction GetArea , il accepte un paramètre de type Shape et appelle sa méthode Area()
func GetArea(shape Shape) float64 {

return shape.Area()
Copier après la connexion

}

func main() {

// 创建一个 Circle 对象并计算它的面积
c := Circle{0, 0, 5}
fmt.Println(GetArea(c)) // 输出:78.5

// 创建一个 Rectangle 对象并计算它的面积
r := Rectangle{0, 0, 10, 10}
fmt.Println(GetArea(r)) // 输出:100

// 注意:Circle 和 Rectangle 类型都实现了 Shape 接口,因此可以作为参数传递给 GetArea 函数
Copier après la connexion

}

Dans l'exemple ci-dessus, nous Une interface nommée La forme est définie et deux types différents, Cercle et Rectangle, sont définis, qui implémentent tous deux la méthode Area() de l'interface Shape. Nous définissons également une fonction appelée GetArea qui accepte un paramètre de type Shape et appelle sa méthode Area() pour calculer l'aire.

Dans la fonction principale, nous avons créé respectivement un objet Circle et un objet Rectangle, et les avons transmis à la fonction GetArea pour calculer leurs aires. Étant donné que les types Circle et Rectangle implémentent l’interface Shape, ils peuvent tous deux être transmis en tant que paramètres à la fonction GetArea pour calculer la surface.

En bref, l'interface est un concept très important dans Golang. Elle nous permet de décrire des objets de manière abstraite sans se soucier de l'implémentation spécifique de l'objet. En maîtrisant l’utilisation des interfaces, nous pouvons mieux concevoir et écrire du code Golang.

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!

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