Maison >développement back-end >Golang >Comment passer une constante de chaîne non typée à une fonction attendant un pointeur de chaîne ?

Comment passer une constante de chaîne non typée à une fonction attendant un pointeur de chaîne ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-02 16:00:29758parcourir

How to Pass an Untyped String Constant to a Function Expecting a String Pointer?

Erreur : conversion d'une chaîne non typée en pointeur de chaîne

Le passage d'une constante de chaîne non typée en tant qu'argument à une fonction attendant un pointeur de chaîne entraîne le erreur suivante :

cannot convert (untyped string constant) to *string [duplicate]

Issue

Le paramètre StorageClassName dans le code fourni attend un pointeur vers une chaîne. Cependant, la valeur fournie "manual" est une constante de chaîne non typée.

Solution

Pour résoudre ce problème, vous ne pouvez pas passer directement une constante de chaîne en argument. Au lieu de cela, vous devez d’abord déclarer une variable chaîne et lui attribuer la constante chaîne. Vous pouvez ensuite transmettre l'adresse de la variable comme argument du pointeur à l'aide de l'opérateur &.

// Declare a string local and assign the constant string literal to it
manualStr := "manual"

// Pass the address of the local variable as the parameter argument
persistentvolumeclaim := &apiv1.PersistentVolumeClaim{

    ObjectMeta: metav1.ObjectMeta{
        Name: "mysql-pv-claim",
    },
    Spec: apiv1.PersistentVolumeClaimSpec{
        StorageClassName: &manualStr,
    },
}

En suivant cette approche, vous pouvez transmettre avec succès le pointeur de chaîne nécessaire comme argument à la 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!

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