Rumah > pembangunan bahagian belakang > Golang > Cara Terbaik Memulakan Penunjuk Bool dalam Literal Go Struct?

Cara Terbaik Memulakan Penunjuk Bool dalam Literal Go Struct?

Linda Hamilton
Lepaskan: 2024-12-07 19:33:15
asal
699 orang telah melayarinya

How to Best Initialize a Bool Pointer in a Go Struct Literal?

Cara Memulakan Penunjuk Bool dalam Huruf Struktur

Dalam Go, struct boleh mempunyai medan yang menjadi penunjuk kepada nilai bool. Apabila mencipta literal struct, anda boleh menentukan nilai medan penunjuk bool dengan menggunakan operator arahan (*). Walau bagaimanapun, terdapat pelbagai cara untuk mendekati perkara ini.

Pilihan 1: Menggunakan Slice

Satu pilihan ialah mencipta kepingan dengan nilai bool tunggal true dan kemudian ambil alamat elemen pertamanya:

h := handler{is: &[]bool{true}[0]}
Salin selepas log masuk

Kaedah ini mengelakkan mentakrifkan pembolehubah baharu tetapi memperkenalkan boilerplate tambahan dan overhead.

Pilihan 2: Menggunakan Fungsi Pembantu

Penyelesaian yang lebih bersih adalah untuk mentakrifkan fungsi pembantu untuk mencipta nilai *bool dengan nilai yang dikehendaki:

func newTrue() *bool {
    b := true
    return &b
}

h := handler{is: newTrue()}
Salin selepas log masuk

Pilihan 3: Menggunakan Tanpa Nama Fungsi

Anda juga boleh menggunakan fungsi tanpa nama untuk mencipta *nilai bool dengan nilai yang dikehendaki dalam satu baris:

h := handler{is: func() *bool { b := true; return &b }()}
Salin selepas log masuk

Pilihan 4: Menggunakan Fungsi dengan Parameter

Sebagai alternatif, anda boleh menggunakan fungsi yang mengambil parameter boolean dan mengembalikan *bool value:

h := handler{is: func(b bool) *bool { return &b }(true)}
Salin selepas log masuk

Pilihan terbaik bergantung pada keperluan khusus aplikasi anda. Pertimbangkan faktor seperti kesederhanaan kod, kecekapan dan kebolehbacaan.

Atas ialah kandungan terperinci Cara Terbaik Memulakan Penunjuk Bool dalam Literal Go Struct?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan