L'éditeur PHP Xiaoxin vous présente une introduction sur la façon d'implémenter le chaînage de méthodes pour les interfaces. Le chaînage de méthodes est une méthode de programmation élégante qui peut appeler en continu plusieurs méthodes dans une seule instruction, améliorant ainsi la simplicité et la lisibilité du code. Dans cet article, nous présenterons en détail les conseils et précautions sur la façon d'implémenter le chaînage de méthodes pour les interfaces afin de vous aider à mieux appliquer la programmation en chaîne de méthodes et à améliorer l'efficacité et la maintenabilité de votre code. Explorons ensemble !
Je veux faire quelque chose comme obj.withx().withy().withz()
的事情。 obj
qui peut avoir différents types, c'est pourquoi j'utilise des interfaces.
Malheureusement obj
也可以是 nil
. Dans ce cas, mon chaînage de méthodes va paniquer car j'appelle une méthode sur une interface nulle et je ne sais pas quelle méthode appeler.
Voici l'exemple minimal reproductible
Comment continuer à utiliser le chaînage de méthodes sur des objets qui peuvent être nil
?
withx()
et d'autres fonctions ? obj.WithX().WithY() // of type func() myInterface obj.WithX().WithY()() // now I got the actual object.
Ces commentaires pour la plupart sont corrects, mais en fait, vous ne pouvez pas renvoyer un nil non typé.
func new(someParam bool) inter { // more complicated. May return A, B or nil if someParam { return &A{} } var b *B return b // which is nil, but of a type that implements the interface }
https://www.php.cn/link/845c31a2fbc3d2e14ecb17d48dcc65a4
Donc, en gros, vous avez juste besoin d'un type "par défaut", qui peut être nul et qui implémente toujours l'interface.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!