Maison > Article > développement back-end > Pourquoi ne puis-je pas convertir une constante de chaîne non typée en pointeur de chaîne ?
Comprendre Impossible de convertir (constante de chaîne non typée) en chaîne*
Lors de la tentative d'attribuer une constante de chaîne à un paramètre qui nécessite un pointeur vers une chaîne, tel que le paramètre StorageClassName dans votre PersistentVolumeClaim, cela peut entraîner une erreur du compilateur. Ce message d'erreur indique que le compilateur ne peut pas convertir la constante de chaîne, qui est une constante non typée, en pointeur vers une chaîne.
Résoudre le problème
Pour résoudre ce problème problème, vous devez utiliser une variable locale de chaîne, lui attribuer la valeur de chaîne constante, puis transmettre l'adresse de cette variable locale à l'aide de l'opérateur &. Voici le code corrigé :
<code class="go">persistentvolumeclaim := &apiv1.PersistentVolumeClaim{ ObjectMeta: metav1.ObjectMeta{ Name: "mysql-pv-claim", }, Spec: apiv1.PersistentVolumeClaimSpec{ // 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. StorageClassName: &manualStr, }, }</code>
En effectuant cette modification, vous créez une variable chaîne typée avec la valeur de la chaîne constante, qui peut ensuite être passée comme pointeur vers une chaîne car il s'agit d'une référence à une variable de chaîne. Cela satisfait correctement à l'exigence de type du paramètre StorageClassName.
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!