Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapakah saya tidak boleh menukar pemalar rentetan yang tidak ditaip kepada penunjuk rentetan?

Mengapakah saya tidak boleh menukar pemalar rentetan yang tidak ditaip kepada penunjuk rentetan?

Linda Hamilton
Linda Hamiltonasal
2024-10-31 00:00:04170semak imbas

Why Can't I Convert an Untyped String Constant to a String Pointer?

Pemahaman Tidak boleh menukar (pemalar rentetan tidak ditaip) kepada rentetan*

Apabila cuba menetapkan pemalar rentetan kepada parameter yang memerlukan penuding kepada rentetan, seperti parameter StorageClassName dalam PersistentVolumeClaim anda, ia boleh mengakibatkan ralat pengkompil. Mesej ralat ini menunjukkan bahawa pengkompil tidak boleh menukar pemalar rentetan, yang merupakan pemalar yang tidak ditaip, kepada penuding kepada rentetan.

Menyelesaikan Isu

Untuk menyelesaikan masalah ini isu, anda perlu menggunakan pembolehubah tempatan rentetan, tetapkan nilai rentetan malar kepadanya, dan kemudian hantar alamat pembolehubah tempatan itu menggunakan operator &. Berikut ialah kod yang diperbetulkan:

<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>

Dengan membuat perubahan ini, anda mencipta pembolehubah rentetan ditaip dengan nilai rentetan malar, yang kemudiannya boleh dihantar sebagai penuding kepada rentetan kerana ia merujuk kepada pembolehubah rentetan. Ini dengan betul memenuhi keperluan jenis parameter StorageClassName.

Atas ialah kandungan terperinci Mengapakah saya tidak boleh menukar pemalar rentetan yang tidak ditaip kepada 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