Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Memulakan Penunjuk Rentetan dalam Structs dalam Go?

Bagaimana untuk Memulakan Penunjuk Rentetan dalam Structs dalam Go?

Barbara Streisand
Barbara Streisandasal
2024-11-12 17:35:02893semak imbas

How to Initialize String Pointers in Structs in Go?

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!

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