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!