Maison >développement back-end >Golang >Quel est le but de l'identifiant vide dans l'assertion d'interface de Go ?

Quel est le but de l'identifiant vide dans l'assertion d'interface de Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-23 02:13:18638parcourir

What is the Purpose of the Blank Identifier in Go's Interface Assertion?

Objectif de l'identifiant vide dans l'affectation de variable

Dans les déclarations de variable telles que var _ PropertyLoadSaver = (*Doubler)(nil), le l'identifiant vierge sert un objectif spécifique. Cette construction est une assertion au moment de la compilation selon laquelle le type *Doubler implémente l'interface PropertyLoadSaver.

Dans Go, un type implémente une interface lorsqu'il propose un ensemble de méthodes qui dépasse ou correspond à l'ensemble de méthodes de l'interface. Si le type *Doubler ne répond pas à ce critère, le compilateur générera une erreur semblable à :

prog.go:21: cannot use (*Doubler)(nil) (type *Doubler) as type PropertyLoadSaver in assignment:
*Doubler does not implement PropertyLoadSaver (missing Save method)

Cette technique d'identifiant vide consiste à déclarer une variable sans nom de type PropertyLoadSaver, puis à lui attribuer une valeur nulle de tapez Doubler via l'expression (*Doubler)(nil). Cette affectation n'est valable que si Doubler implémente l'interface PropertyLoadSaver.

L'identifiant vide souligne le fait que cette variable ne sera pas référencée ailleurs dans le package. De même, la ligne suivante permet d'obtenir le même résultat mais avec un identifiant non vide :

var assertStarDoublerIsPropertyLoadSaver PropertyLoadSaver = (*Doubler)(nil)

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn