登录
首页 >  Golang >  Go问答

无法将无类型字符串常量转换为字符串

来源:stackoverflow

时间:2024-03-20 14:09:24 305浏览 收藏

在使用 Kubernetes API 创建 PersistentVolumeClaim 对象时,将字符串常量直接传递给 StorageClassName 参数会导致编译器错误。这是因为无法获取字符串常量的地址。为了解决此问题,应声明一个字符串局部变量并为其分配常量字符串值,然后将该局部变量的地址传递给 StorageClassName 参数。此解决方案允许您指定所需的存储类名称,避免了编译器错误。

问题内容

persistentvolumeclaim := &apiv1.PersistentVolumeClaim{
        ObjectMeta: metav1.ObjectMeta{
            Name: "mysql-pv-claim",
        },
        Spec: apiv1.PersistentVolumeClaimSpec{
            StorageClassName: "manual",
            },
    }

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


解决方案


You cannot get the address of a string constant/literal,但如果您有 string 局部变量(设置为您想要的值),则可以传递该局部变量的地址:

首先声明一个 string 局部变量并为其分配常量字符串文字,然后使用 & 运算符将该局部变量的地址作为参数传递:

persistentvolumeclaim := &apiv1.PersistentVolumeClaim {

        manualStr := "manual"

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

好了,本文到此结束,带大家了解了《无法将无类型字符串常量转换为字符串》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>