Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Melepasi Pemalar Rentetan Tidak Ditaip kepada Fungsi Menjangkakan Penunjuk Rentetan?

Bagaimana untuk Melepasi Pemalar Rentetan Tidak Ditaip kepada Fungsi Menjangkakan Penunjuk Rentetan?

Linda Hamilton
Linda Hamiltonasal
2024-11-02 16:00:29756semak imbas

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

Ralat: Menukar Rentetan Tidak Ditaip kepada Penunjuk Rentetan

Melalukan pemalar rentetan yang tidak ditaip sebagai argumen kepada fungsi yang mengharapkan penuding rentetan menghasilkan ralat berikut:

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

Isu

Parameter StorageClassName dalam kod yang disediakan menjangkakan penuding kepada rentetan. Walau bagaimanapun, nilai "manual" yang disediakan ialah pemalar rentetan yang tidak ditaip.

Penyelesaian

Untuk menyelesaikan isu ini, anda tidak boleh meneruskan pemalar rentetan secara langsung sebagai hujah. Sebaliknya, anda mesti terlebih dahulu mengisytiharkan pembolehubah rentetan dan menetapkan pemalar rentetan kepadanya. Anda kemudiannya boleh menghantar alamat pembolehubah sebagai hujah penunjuk menggunakan & operator.

// 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,
    },
}

Dengan mengikuti pendekatan ini, anda boleh berjaya menghantar penuding rentetan yang diperlukan sebagai hujah kepada fungsi.

Atas ialah kandungan terperinci Bagaimana untuk Melepasi Pemalar Rentetan Tidak Ditaip kepada Fungsi Menjangkakan Penunjuk Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn