Maison > développement back-end > Golang > Comment convertir un type en un nouveau type basé sur celui-ci ?

Comment convertir un type en un nouveau type basé sur celui-ci ?

WBOY
Libérer: 2024-02-06 10:30:11
avant
471 Les gens l'ont consulté

Comment convertir un type en un nouveau type basé sur celui-ci ?

Contenu de la question

J'ai créé un nouveau type pour ajouter des méthodes personnalisées spécifiques aux besoins de mon application

type content html.node
Copier après la connexion

Je sais que je peux dériver html.node d'un content 类型的 content var pour faire ça

node := html.node(content)
Copier après la connexion

Mais y a-t-il un html.node 类型的 var,如何转换为 content ?

J'ai découvert qu'en faisant ce qui suit...

ndoe, err := htmlquery.loadurl(page.url)

content := content(node)
Copier après la connexion

... je ne peux pas travailler. Cela m'a donné cette erreur :

cannot convert doc (variable of type *html.Node) to type Content
Copier après la connexion


Bonne réponse


https://www.php.cn/link/b14fba037d119d307e3b6ceb2a9fbb31

Si le nœud est html.node utilisez :

c := content(node)
Copier après la connexion

Si le nœud est *html.node utilisez :

c := (*content)(node)
Copier après la connexion

Commentaires de la spécification liée ci-dessus : "Si un type commence par un opérateur *... il doit être mis entre parenthèses si nécessaire pour éviter toute ambiguïté." Si vous le souhaitez

alors vous devez déréférencer le pointeur avant ou après la conversion, par exemple :

c := Content(*node) // dereference before conversion
// or
c := *(*Content)(node) // dereference after conversion
Copier après la connexion
content 而不是 *contenthttps://www.php.cn/link/fb9d433088a21464e7d634c4e190b31a

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!

source:stackoverflow.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal