Cannot convert (untyped string constant) to *string

10,475

You cannot get the address of a string constant/literal, but if you have a string local variable (set to the value you want) you can then pass the address of that local:

Declare a string local first and assign the constant string literal to it, then pass the address of that local as the parameter argument with the & operator:

persistentvolumeclaim := &apiv1.PersistentVolumeClaim {

        manualStr := "manual"

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

Related videos on Youtube

manjeet
Author by

manjeet

Updated on September 15, 2022

Comments

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

    StorageClassName parameter takes pointer to string, but compiler gives error when i'm passing string "manual" into it.

  • manjeet
    manjeet about 4 years
    now showing error in this line :- manualStr := "manual"
  • Dai
    Dai about 4 years
    @manjeet My mistake, it's been a while since I last used Go. I've updated my answer.
  • manjeet
    manjeet about 4 years
    Now it's showing :- undeclared name: utils. What package i have to import for this. it shows error when i import this package: "github.com/kubernetes/utils/pointer"
  • JimB
    JimB about 4 years
    Don't import an entire package to get a one line function. You can write that function in your code if you need to do this more than a couple times.