Memulakan Penunjuk Rentetan dalam Struktur Go
Dalam Go, struct boleh mengandungi penunjuk kepada nilai lain, termasuk rentetan. Walaupun mudah untuk memulakan rentetan secara langsung dalam struct, memulakan penuding rentetan boleh memberikan cabaran.
Masalah
Apabila cuba memulakan struct dengan penuding rentetan (*rentetan ) sebagai nilai lalai, ralat berlaku:
cannot use "string" (type string) as type *string in field value
Penyelesaian
Untuk memulakan penuding rentetan dalam struct, anda tidak boleh memberikan nilai rentetan malar kepadanya secara langsung. Sebaliknya, cipta pembolehubah, tetapkan nilai padanya dan kemudian hantar alamat pembolehubah itu kepada penuding rentetan:
type Config struct { Uri *string } func init() { v := "my:default" var config = Config{ Uri: &v } }
Dengan menggunakan operator &, anda memperoleh alamat pembolehubah (&v), yang kemudiannya boleh diberikan kepada penuding rentetan. Ini membolehkan perbandingan dua kejadian struct di mana Uri boleh menjadi sifar jika tidak ditetapkan.
Atas ialah kandungan terperinci Bagaimana untuk Memulakan Penunjuk Rentetan dalam Go Struct?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!