Memulakan Penunjuk Rentetan dalam Structs
Dalam Go, memulakan struct dengan penuding kepada rentetan di mana penunjuk boleh menjadi sifar memerlukan pengendalian yang teliti . Coretan kod berikut menunjukkan cabaran:
type Config struct { Uri *string } func init() { var config = Config{ Uri: "my:default" } }
Ini gagal dengan ralat:
cannot use "string" (type string) as type *string in field value
Untuk menyelesaikannya, seseorang tidak boleh hanya menunjuk kepada nilai rentetan malar seperti dalam kod di atas . Sebaliknya, pembolehubah diperlukan:
type Config struct { Uri *string } func init() { v := "my:default" var config = Config{ Uri: &v } }
Dalam kod ini, pembolehubah v dicipta dan dimulakan dengan nilai yang dikehendaki. Kemudian, alamat v (iaitu, &v) diberikan kepada medan Uri struct. Ini berfungsi kerana medan Uri ialah penunjuk kepada rentetan dan alamat v ialah jenis *rentetan.
Atas ialah kandungan terperinci Bagaimana untuk Memulakan Penunjuk Rentetan dalam Structs dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!