Fonctions en tant que champs Struct et méthodes Struct
Dans Go, les fonctions peuvent être intégrées en tant que champs dans des structures ou définies comme méthodes de ces structures . Comprendre les distinctions entre ces approches peut optimiser la conception de votre code.
Champs de type de fonction
Les champs de type de fonction ne sont pas de véritables méthodes attachées au type de structure. Elles stockent une référence à une fonction plutôt que de faire partie de l'ensemble de méthodes de la structure.
Méthodes vraies
Les méthodes vraies, déclarées avec le type struct comme récepteur, sont partie intégrante de l'ensemble de méthodes de la structure. Ils permettent d'implémenter des interfaces et d'opérer sur des types concrets. Une fois définies, les méthodes ne peuvent pas être modifiées au moment de l'exécution.
Quand utiliser les champs de type de fonction
Quand utiliser les vraies méthodes
Exemple
<code class="go">type Foo struct { Bar func() } func main() { f := Foo{ Bar: func() { fmt.Println("initial") }, } f.Bar() f.Bar = func() { fmt.Println("changed") } f.Bar() }</code>
Sortie :
initial changed
Dans cet exemple, une fonction est intégrée en tant que champ dans la structure Foo. En réaffectant le champ au moment de l'exécution, nous pouvons modifier le comportement de la méthode Bar, démontrant la flexibilité des champs de type fonction.
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!