Golang est un langage de programmation très puissant qui prend en charge la programmation orientée objet (POO). Dans Golang, nous pouvons utiliser des méthodes pour implémenter des fonctionnalités telles que l'encapsulation, l'héritage et le polymorphisme dans la programmation orientée objet. Une méthode fait référence à une fonction associée à un certain type, qui peut être appelée via le type, similaire aux méthodes membres (Member Function) ou aux méthodes d'instance (Instance Method) dans d'autres langages de programmation.
Les méthodes en Golang sont définies sur une structure (Struct) ou un type (Type), et sont étroitement liées à la structure ou au type lui-même. Grâce aux méthodes, nous pouvons associer le comportement aux données, rendant le code plus lisible et concis.
Les définitions de type de méthode de Golang incluent principalement les éléments suivants :
Par exemple, voici la définition d'une méthode de type valeur :
type Rectangle struct { width, height float64 } func (r Rectangle) area() float64 { return r.width * r.height }
Dans cet exemple, nous définissons une structure Rectangle et définissons une méthode de type valeur nommée zone. Le récepteur de cette méthode est une valeur de type Rectangle (r Rectangle) et renvoie une zone de type float64.
Lors de l'appel de cette méthode, nous pouvons l'appeler via une valeur de type Rectangle :
rect := Rectangle{width: 10, height: 5} fmt.Println(rect.area())
Par exemple, voici la définition d'une méthode de type pointeur :
type Rectangle struct { width, height float64 } func (r *Rectangle) scale(factor float64) { r.width = r.width * factor r.height = r.height * factor }
Dans cet exemple, nous définissons une structure Rectangle et définissons une méthode de type pointeur nommée scale. Le récepteur de cette méthode est un pointeur de type Rectangle (r *Rectangle) et n'a aucune valeur de retour. Dans la méthode, nous multiplions les propriétés de largeur et de hauteur de la structure par un facteur.
Lors de l'appel de cette méthode, nous devons l'appeler via un pointeur vers le type Rectangle :
rect := &Rectangle{width: 10, height: 5} rect.scale(2) fmt.Println(rect.width, rect.height)
Par exemple, nous pouvons définir un type Animal, puis définir un type Chat, et utiliser le type Animal comme champ intégré du type Chat. De cette façon, le type Chat peut utiliser directement les méthodes du type Animal.
type Animal struct { name string } func (a *Animal) move() { fmt.Println(a.name, "is moving") } type Cat struct { *Animal } func main() { cat := &Cat { Animal: &Animal { name: "Tom", }, } cat.move() }
Dans cet exemple, nous définissons un type Animal et un type Chat, et intégrons le type Animal dans le type Chat en tant que champ anonyme. De cette façon, le type Chat peut utiliser directement les méthodes du type Animal.
Lors de l'appel de cette méthode, nous pouvons appeler directement la méthode move de type Cat. Étant donné que le type Cat contient un type Animal, la méthode move est en fait une méthode de ce type.
Résumé :
Golang prend en charge plusieurs définitions de types de méthodes telles que les méthodes de type valeur, les méthodes de type pointeur et les méthodes de type intégré. En définissant différents types de méthodes, nous pouvons répondre à différents besoins de programmation et apporter plus de flexibilité et de commodité à la programmation 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!