Maison > développement back-end > Golang > Convertir le type personnalisé en pointeur de type de base

Convertir le type personnalisé en pointeur de type de base

WBOY
Libérer: 2024-02-09 17:36:09
avant
609 Les gens l'ont consulté

Convertir le type personnalisé en pointeur de type de base

l'éditeur php Baicao vous présente aujourd'hui un concept important sur la conversion de type : la conversion de types personnalisés en pointeurs de type de base. En programmation, nous avons souvent besoin de convertir un type personnalisé en pointeur d'un type de base afin d'effectuer certaines opérations spécifiques. Cette opération de conversion peut nous aider à traiter les données de manière plus flexible et à améliorer l'efficacité et la lisibilité du code. Cet article expliquera ce concept en détail et donnera quelques exemples pour aider les lecteurs à mieux le comprendre et l'appliquer.

Contenu de la question

Supposons que j'ai un code comme celui-ci :

type CustomStringType string

var a *CustomStringType

x := CustomStringType("sample string")
a = &x


var b *string
Copier après la connexion

Je ne peux rien modifier dans le code ci-dessus.

Maintenant, je veux a 分配给 b

J'ai essayé de nombreuses méthodes, telles que :

b = a
b = string(a)
b = a.(string)
b = a.(*string)
Copier après la connexion

Mais aucun d’entre eux n’a vraiment fonctionné.

Solution de contournement

Utilisez un type simple Conversion :

b = (*string)(a)
Copier après la connexion

Puisque le type que vous souhaitez convertir se termine par * 运算符开头,因此必须将其放在括号中以避免歧义(例如,您要转换为 *string,而不是 string et déréférence le résultat).

(*string)(a) 是一个有效的转换,因为您想要将值从类型 *CustomStringType 转换为 *string, et la spécification autorise de telles conversions en utilisant les règles suivantes :

*CustomStringType*string 都是未命名指针类型,并且都以 string comme type de base de pointeur.

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