无法将(无类型字符串常量)转换为 *string

man*_*eet 1 string go

persistentvolumeclaim := &apiv1.PersistentVolumeClaim{
        ObjectMeta: metav1.ObjectMeta{
            Name: "mysql-pv-claim",
        },
        Spec: apiv1.PersistentVolumeClaimSpec{
            StorageClassName: "manual",
            },
    }
Run Code Online (Sandbox Code Playgroud)

StorageClassName参数采用指向字符串的指针,但是当我将字符串传递"manual"给它时,编译器会出错。

Dai*_*Dai 6

您无法获得字符串 constant/literal 的地址,但如果您有一个string局部变量(设置为您想要的值),则可以传递该局部变量的地址:

首先声明一个stringlocal 并将常量字符串文字分配给它,然后将该 local 的地址作为参数参数与&操作符一起传递:

persistentvolumeclaim := &apiv1.PersistentVolumeClaim {

        manualStr := "manual"

        ObjectMeta: metav1.ObjectMeta {
            Name: "mysql-pv-claim",
        },
        Spec: apiv1.PersistentVolumeClaimSpec {
            StorageClassName: &manualStr,
        },
    }
Run Code Online (Sandbox Code Playgroud)