Golang est un langage de programmation très apprécié des développeurs. Il a gagné la faveur de nombreux développeurs en raison de son efficacité, de sa simplicité et de sa facilité d'apprentissage et d'utilisation. En Golang, une méthode est une fonction qui permet des opérations sur un type struct.
Cet article vous présentera les méthodes Golang, y compris des détails sur la définition des méthodes, l'appel, la livraison, les interfaces, etc., pour vous aider à mieux maîtriser l'utilisation des méthodes Golang.
1. Définition de la méthode
Dans Golang, une méthode est un type spécial de fonction, qui est associé à un type de structure, c'est-à-dire que le récepteur de la méthode doit pointer vers un certain type de structure. La syntaxe de base de la définition de la méthode est la suivante :
func (r ReceiverType) methodName(parameterList) (resultList) {
// 方法体
}
Parmi eux, ReceiverType fait référence au type de récepteur de méthode, qui peut être n'importe quel type, y compris type de pointeur, si ReceiverType est un type de pointeur, il sera donc automatiquement déréférencé lorsque la méthode est appelée ; methodName fait référence au nom de la méthode ; à transmettre ; resultList fait référence à la liste de valeurs de retour de la méthode. Si la valeur de retour n'est pas requise, elle peut être omise.
Par exemple, nous pouvons définir une méthode nommée Print, qui reçoit un pointeur vers le type Person et n'a pas besoin de passer de paramètres et de valeurs de retour :
type Person struct {
name string age int
}
func (p *Person) Print() {
fmt.Printf("Name: %s, Age: %d
", p.name, p.age)
}
Dans l'exemple ci-dessus, la méthode Print appartient au type Personne. Elle est liée à un pointeur vers le type Personne, elle peut donc être passé via le type Personne. Instance pour appeler la méthode.
2. Appel de méthode
Dans Golang, l'appel de méthode est très similaire à l'appel de fonction. Il suffit d'ajouter le récepteur avant le nom de la fonction. une instance de type Person, puis appelez la méthode Print pour la sortie :
func main() {
p := &Person{ name: "Tom", age: 18, } p.Print()
}
Dans l'exemple ci-dessus, nous avons créé un pointeur p pointant vers le type Person et avons appelé sa méthode Print pour la sortie. . Choses à noter. Oui, il n'est pas nécessaire de transmettre explicitement le récepteur lors de l'appel de la méthode. Golang convertira automatiquement l'appelant en récepteur
3. Livraison de méthode
Dans Golang, les méthodes peuvent également être transmises comme des fonctions. Par exemple, nous pouvons encapsuler la méthode Print ci-dessus dans une fonction :
func PrintPerson(p *Person) {
p.Print()
}
Ensuite, nous pouvons passer la fonction PrintPerson en paramètre à une autre fonction :
func ProcessPerson( f func(* Person)) {
p := &Person{ name: "Tom", age: 18, } f(p)
}
Enfin, nous pouvons appeler la fonction ProcessPerson, en passant la fonction PrintPerson en paramètre :
func main() {
ProcessPerson(PrintPerson)
}
Dans l'exemple ci-dessus, le La fonction ProcessPerson reçoit une fonction en tant que paramètre et transmet une instance du type Person à la fonction en tant que paramètre. Étant donné que la fonction PrintPerson reçoit un pointeur vers le type Person en tant que paramètre et est conforme au type de fonction, la fonction PrintPerson peut être passé en paramètre à la fonction ProcessPerson et réussit. Sortie
4. Interface des méthodes
L'interface dans Golang est un concept très important qui définit une collection de méthodes. l'interface. Dans Golang, vous pouvez utiliser des méthodes pour implémenter des interfaces.
Par exemple, nous pouvons créer une interface nommée Stringer, qui définit une méthode nommée String pour convertir une structure en chaîne :
type Stringer interface {
String() string
}
Ensuite, nous pouvons définir une méthode String sur le type Person pour convertir Person en chaîne :
func (p *Person) String() string {
return fmt.Sprintf("Name: %s, Age: %d", p.name, p.age)
}
Enfin, nous Le type Person pouvons implémenter le Stringer interface et utilisez la fonction Println dans le package fmt pour la sortie :
func main() {
p := &Person{ name: "Tom", age: 18, } fmt.Println(p)
}
Dans l'exemple ci-dessus, le type Person implémente l'interface Stringer et la convertit en String en sortie.
Résumé
Cet article présente les détails de la définition, de l'appel, de la livraison, de l'interface, etc. des méthodes Golang. J'espère qu'il pourra aider les lecteurs à mieux comprendre l'utilisation des méthodes Golang. Il convient de noter que lors de l'utilisation de méthodes, vous devez faire attention à des détails tels que le type de récepteur et la définition de la méthode, ainsi que la méthode d'appel et la méthode de livraison de la méthode. Ce n'est qu'en maîtrisant ces détails que nous pourrons exploiter pleinement les avantages des méthodes Golang et améliorer l'efficacité et la maintenabilité du code.
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!