Maison > Article > développement back-end > Méthode et héritage en langage Go
Avec l'avènement de l'ère du cloud computing et du big data, les langages de programmation se développent et s'améliorent constamment. Parmi eux, le langage Go a attiré de plus en plus de développeurs grâce à sa programmation simultanée efficace, son excellente bibliothèque réseau et sa syntaxe facile à apprendre. En langage Go, les méthodes et l’héritage sont deux concepts très importants. Cet article présentera les connaissances pertinentes sur les méthodes et l'héritage du langage Go pour aider les lecteurs à mieux comprendre et appliquer le langage Go.
Méthodes
En langage Go, les méthodes font référence à des fonctions associées à des types. Il n'y a pas de concept de classes dans le langage Go, mais les types associés sont implémentés en définissant des structures (structs). Les fonctions définies dans la structure sont des méthodes. Les méthodes peuvent être transmises et appelées, et peuvent accepter des paramètres et renvoyer des valeurs. Le format de syntaxe de la méthode est le suivant :
func (receiver_name Receiver_type) function_name([parameters]) [return_type] {
// Function body
}
où, Receiver_name représente le nom du type de structure auquel appartient la méthode, et Receiver_type représente le type de la structure. function_name représente le nom de la méthode, settings représente la liste des paramètres de la méthode et return_type représente le type de valeur de retour de la méthode. Dans la liste des paramètres de la méthode, le récepteur est transmis comme premier paramètre et peut être utilisé pour appeler d'autres méthodes ou propriétés dans la structure. Dans la valeur de retour d’une méthode, n’importe quel type légal peut être renvoyé, même un type structure. Voici un exemple simple :
package main
import "fmt"
type Circle struct {
radius float64
}
func (c Circle) getArea() float64 {
return 3.14 * c.radius * c.radius
}
func main() {
c := Circle{radius: 5} fmt.Println("Area of circle:", c.getArea())
}
Dans cet exemple, la structure Circle est définie, qui contient un rayon de type float64. La méthode getArea calcule et renvoie l'aire d'un cercle en appelant c.getArea(). Le résultat résultant est : Aire du cercle : 78,5.
Héritage
L'héritage est une idée de programmation orientée objet, ce qui signifie qu'une sous-classe hérite des propriétés et des méthodes d'une classe parent. En langage Go, l'héritage est implémenté via la composition. Grâce aux structures imbriquées, une structure peut être imbriquée dans une autre structure pour obtenir l'héritage des propriétés et des méthodes. Voici un exemple :
package main
import "fmt"
type Person struct {
Name string Age int
}
type Student struct {
Person Grade int
}
func (p Person) sayHello() {
fmt.Println("Hello, my name is", p.Name, "and I am", p.Age, "years old.")
}
func main() {
s := Student{Person: Person{Name: "Tom", Age: 22}, Grade: 90} s.sayHello() fmt.Println("My grade is", s.Grade)
}
Dans cet exemple, deux structures Personne et Étudiant sont définies. La structure Student imbrique la structure Person, héritant ainsi des propriétés et des méthodes de Person. Dans la fonction principale, créez d'abord un objet Student et initialisez les membres du type Person à l'aide d'une structure imbriquée. Ensuite, les informations personnelles sont générées en appelant la méthode s.sayHello() et les informations de note sont obtenues via s.Grade. Le résultat est : Bonjour, je m’appelle Tom et j’ai 22 ans. Ma note est 90.
Résumé
Les méthodes et l'héritage sont des concepts très importants en programmation orientée objet. Dans le langage Go, bien qu'il n'y ait pas de concept de classes, l'implémentation des méthodes et de l'héritage devient très concise et facile à comprendre grâce aux structures et aux structures imbriquées. La maîtrise des connaissances pertinentes sur les méthodes et l'héritage peut aider les développeurs à mieux utiliser le langage Go pour la programmation et à améliorer l'efficacité et les performances du programme.
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!