Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Menetapkan `true` kepada Penunjuk `bool` dalam Go Struct Literal Tanpa Menentukan Pembolehubah Tambahan?

Bagaimanakah Saya Boleh Menetapkan `true` kepada Penunjuk `bool` dalam Go Struct Literal Tanpa Menentukan Pembolehubah Tambahan?

DDD
Lepaskan: 2024-12-03 11:14:10
asal
832 orang telah melayarinya

How Can I Assign `true` to a `bool` Pointer in a Go Struct Literal Without Defining Extra Variables?

Menetapkan True to Bool Pointer dalam Go Struct Literals

Go programmer sering menghadapi situasi di mana mereka perlu menetapkan bool pointer kepada true dalam struct literal . Artikel ini menyelidiki pilihan yang tersedia untuk mencapai matlamat ini tanpa menentukan pengecam baharu.

Coretan kod yang disediakan mempamerkan fungsi yang mengambil penunjuk bool, menimbulkan persoalan sama ada binaan wujud yang membenarkan medan is menjadi ditetapkan kepada benar dalam literal struct itu sendiri.

Pendekatan untuk Tetapan Benar:

1. Pengindeksan Tatasusunan (Tidak Optimum):

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

Kaedah ini melibatkan mencipta tatasusunan dengan set bool tunggal kepada benar, mengindeksnya dan memberikan alamat elemen yang diindeks. Walaupun ia tidak memerlukan pembolehubah tambahan, plat dandang dan penggunaan memori adalah kelemahan.

2. Fungsi Pembantu dengan Pulangan Penunjuk:

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

Pendekatan ini memperkenalkan fungsi pembantu yang mengembalikan alamat pembolehubah bool sebenar. Ia digunakan seperti berikut:

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

Ini menyediakan penyelesaian yang lebih bersih dan boleh disesuaikan.

3. Fungsi Tanpa Nama dengan Penutupan:

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

Teknik fungsi tanpa nama menggunakan penutupan untuk menyediakan kefungsian yang diingini.

4. Pilihan Fungsian dengan Penutupan:

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

Pilihan ini menawarkan pendekatan pengaturcaraan berfungsi, dengan nilai bool dihantar sebagai hujah.

Penyelesaian Optimum:

Penyelesaian paling optimum untuk kebanyakan senario ialah menggunakan fungsi pembantu seperti newTrue(), kerana ia menyediakan cara ringkas dan boleh diguna semula untuk menetapkan penunjuk bool kepada benar dalam literal struct.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menetapkan `true` kepada Penunjuk `bool` dalam Go Struct Literal Tanpa Menentukan Pembolehubah Tambahan?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan